我试图尽可能高效地实施Kruskal.
对于运行时效率,使用堆或排序算法对边进行排序是否有区别?
还有哪些其他技术可以使Kruskal算法更有效地工作?
我是 Prolog 的新手,想定义一个简单的谓词,它根据我选择在算术表达式中使用的函数来计算结果。
所以,这是我的想法:
operation(X,Y, Op, Result):-
Result is X Op Y.
Run Code Online (Sandbox Code Playgroud)
现在,我期待 Prolog 的这一点:
operation(3,4,'+', X).
X = 7.
Run Code Online (Sandbox Code Playgroud)
但是正如您可能猜到的那样,Prolog 不能识别Op为算术运算。有谁知道这怎么可能?
我还没有在互联网上找到任何东西,即使它是相当基本的,我想。
提前致谢!
如何证明算法的上限和下限?
到目前为止,我认为算法的上限和下限都需要通过考虑所有输入来显示,并且表明它不能比f(n)[上限]更糟,并且不比g(n)更好[下限].
我的讲师说,对于上限,需要一般地证明它[考虑所有输入],但是对于下限,一个例子就足够了.
这让我很困惑.任何人都可以澄清他的意思吗?