我在 C++ 中实现了 Kruskal 算法(使用不相交的数据集结构)。我试图找到为算法的总运行时间创建更坏情况测试用例的可能方法。然而,当我尝试创建测试用例时,我对什么会使算法导致最坏的情况感到困惑,并且想知道这里是否有人可能知道真正让 Kruskal 的算法陷入困境的可能场景。
到目前为止,我认为理论上可能测试 Kruskal 算法界限的主要测试将是所有权重都相同的测试用例。一个例子如下:
4 4
(4, 4) 4 //(4,4) vertex and weight = 4
(4, 4) 4
(4, 4) 4
(4, 4) 4
我最终遇到的是,无论我做什么,如果我试图减慢算法的速度,我最终会没有最小生成树,最终无法实际测试算法的边界。