【发布时间】:2012-10-02 15:03:00
【问题描述】:
我一直在对梳状排序进行一些研究,并试图弄清楚该算法是否已被证明是正确的。但是,我似乎无法找到有关该算法的大量文档。不过,这是一个非常简单的算法——基本上是冒泡排序的一种变体——我猜这个证明并不复杂。有没有人知道我在哪里可以找到更多关于这方面的信息,或者关于如何从头开始证明它的想法?
不熟悉Comb Sort的朋友可以在Wikipedia article找到伪代码。
【问题讨论】:
-
什么意思,证明正确?
-
gap==1时的最后一遍相当于冒泡排序。如果冒泡排序是正确的,那么梳状排序也是正确的。 -
啊,好点。所以我想你要做的就是证明循环中的gap变量最终达到1。
-
@Blastfurnace 但是冒泡排序需要 O(n^2) 进行排序,仅仅因为一次通过类似于冒泡排序的一次通过,并不意味着整个算法是正确的。
-
@PrathikRajendranM 也许我应该说“舞台”而不是“通过”。事实上,当
gap变为 1 时,梳排序就等同于冒泡排序。
标签: algorithm sorting proof correctness