设S是一组n> 0个不同的整数。假设n是3的幂。三元比较可以比较集合S中的三个数字,并从最大到最小排序。
描述一种有效的算法,它使用尽可能少的三元比较来找到集合中的最大数字。解释为什么你的算法是正确的,并说明它在最坏的情况下使用的三元比较的确切数目。
这是一个中期问题。
我的回答如下:
T(n)= 3T(n / 3)+ 1
解析为(n / 2)-1
有更有效的方法吗?
感谢。
答案 0 :(得分:0)
我认为你不能做得更好。请注意,每次比较都允许您从考虑中丢弃两个数字。你应该得到(n-1)/ 2,而不是(n / 2)-1。