选择,使用三元比较器查找最大的集合

时间:2009-10-17 19:25:22

标签: algorithm selection

设S是一组n> 0个不同的整数。假设n是3的幂。三元比较可以比较集合S中的三个数字,并从最大到最小排序。

描述一种有效的算法,它使用尽可能少的三元比较来找到集合中的最大数字。解释为什么你的算法是正确的,并说明它在最坏的情况下使用的三元比较的确切数目。

这是一个中期问题。

我的回答如下:

T(n)= 3T(n / 3)+ 1

解析为(n / 2)-1

有更有效的方法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我认为你不能做得更好。请注意,每次比较都允许您从考虑中丢弃两个数字。你应该得到(n-1)/ 2,而不是(n / 2)-1。