关于算法:如何找到排序8个元素的最佳方法,并证明没有更好的方法(没有更有效的方法)?

How to find the best way to sort 8 elements and prove that there is no better way (no more efficient way)?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Fastest sort of fixed length 6 int array

任务是找到一种方法,用最少的比较数(而不是操作)对8个随机数进行排序。我希望我必须使用qsort(将数组除以一半,排序然后合并等等)。我想一定是流沙。对于8个元素,比较的数目是17,我必须证明没有办法对16个(n减去1)比较的随机数组进行排序。

谢谢

任何情况下,也必须是最坏的。我在学习的第一年,所以我不认为我们必须做一些特别的事情(我学习数学而不是它)。我用的是mergesort!事先谢谢。


MERGEASORT/MERGE-Inplation SOUR Will require 16 comparations for N=8,which is the minimum worst case number of comparations.

http://oeis.org/a001768(Mergesert Comparations number)

http://oeis.org/a036604(Minimum number of comparations in general)

See also最小对比数的阵列输出

编辑:无需假设"随机数"是范围限制的积分。如果你可以假设价值范围,那么就有别的选择。


RADIX substances requires no comparation at all: