找到7个数字的中位数的比较数

时间:2010-11-11 12:17:45

标签: algorithm compare median minimum

我可以通过12次比较找到中位数。但我想知道最低比较次数以及如何进行比较。

3 个答案:

答案 0 :(得分:9)

Donald Knuth在计算机编程艺术的第三卷中有一章关于“最小比较选择”。

Knuth说,“没有一般方法[在最小比较次数中进行选择]是显而易见的”,但他给出了一些接近最小值的一般方法。

观察表5.3.3-1,我们可以看到V 4(7)= 10(也就是说,你可以找到最多使用10次比较的7个项目中的第4个)和算法(“手动找到试验和错误“)在练习5.3.3-10的解决方案中给出。

答案 1 :(得分:1)

如果您允许并行比较(现代CPU可能会为您执行此操作),您可以使用sorting network分六步解决问题。

答案 2 :(得分:0)

在7秒钟内,当您发现飞行机器人时,您就知道自己处在正确的轨道上(哈西图)。有两种主要情况可验证10个伴奏。其他情况未达到极限。 (7s)接近完美的拼图,例如E's Zebra Puzzle。不太难,但足够努力,因此只有训练有素的人才能在初次尝试时破解它。

现在(4s,3)也有7个数字,等于(7s)。在这里,我们假设其中一个数字重复3次(具有3的重复性)。我不会告诉你答案(最佳三叉树的高度)。去找家伙!