给出n个数字的数组,其中n是偶数。需要确定这n个数的最大值和最小值。我需要知道所需的比较吗?
答案 0 :(得分:4)
可以使用3*n/2-2
比较来完成。
对于n == 2
,只需比较两个数字即可。
现在假设我们有第一个n-2
数字的最小值和最大值。比较剩下的两个数字,然后将较大的数字与之前的最大值进行比较,将较小的数字与之前的最小值进行比较。
答案 1 :(得分:3)
可以在O(n)时间内完成。
您可以查看此link以供参考
答案 2 :(得分:1)
对于未排序的数组,可以在大约1.5n
次比较中完成。您可以通过比较数组的元素对并存储min
和本地max
来实现。您已完成n/2
次比较以查找(本地人)max和n/2
以查找最小值。因此,此阶段共有n
。
现在你浏览最大和最小的当地人并找到全局最大值和最小值。这也需要n/2
次比较。因此n + n / 2 = 1.5n
。
如果数组已排序,您可以在没有任何比较的情况下找到它,因为最低数字位于第0位,最高位于第N - 1位。