Redian新闻
>
算法--找一个unsorted array的largest and second largest 最
avatar
算法--找一个unsorted array的largest and second largest 最# JobHunting - 待字闺中
i*9
1
大家都知道找最大值和最小值 的最佳比较次数 3n/2 (两两比较),找最大和次大的有
什么技巧吗?
avatar
u*e
2
merge sort?

【在 i**9 的大作中提到】
: 大家都知道找最大值和最小值 的最佳比较次数 3n/2 (两两比较),找最大和次大的有
: 什么技巧吗?

avatar
D*h
3
tournament tree

【在 i**9 的大作中提到】
: 大家都知道找最大值和最小值 的最佳比较次数 3n/2 (两两比较),找最大和次大的有
: 什么技巧吗?

avatar
g*k
4
这个类似吧。
两两比较得到(a1, a2), (b1, b2),。。。
共比较n/2
比较a2和b2,
如果a2大,那么再比较a1和b2
如果b2大,那么再比较b1和a2
这一步比较2(n/2)次
一共比较3n/2

【在 i**9 的大作中提到】
: 大家都知道找最大值和最小值 的最佳比较次数 3n/2 (两两比较),找最大和次大的有
: 什么技巧吗?

avatar
c*a
5
build Heap
avatar
i*9
6
thanks, 总之,这个是要 extra memory, 这里有人提过不用extra memory ,我想了半
天也没想
出来,

【在 D***h 的大作中提到】
: tournament tree
avatar
x*p
7
It only need two extra-memory. Start with (a1,a2) with a1>a2. Then for each
a3, ..., an, compare at most twice to (a1,a2) and do corresponding
replacement. So the total comparison is at most 1 + 2(n-2) = 2n - 3 = O(n).
avatar
i*9
8
using tournament tree only n+ lgn -2 times of comparison are needed

each
O(n).

【在 x*****p 的大作中提到】
: It only need two extra-memory. Start with (a1,a2) with a1>a2. Then for each
: a3, ..., an, compare at most twice to (a1,a2) and do corresponding
: replacement. So the total comparison is at most 1 + 2(n-2) = 2n - 3 = O(n).

avatar
P*l
9
What is the memory requirement of your tournament?
If it is n, why not use heap? It just requires n times comparison.

【在 i**9 的大作中提到】
: using tournament tree only n+ lgn -2 times of comparison are needed
:
: each
: O(n).

avatar
g*s
10
2n -3 could be 33% slower than 1.5n solution, although both O(N).

each
O(n).

【在 x*****p 的大作中提到】
: It only need two extra-memory. Start with (a1,a2) with a1>a2. Then for each
: a3, ..., an, compare at most twice to (a1,a2) and do corresponding
: replacement. So the total comparison is at most 1 + 2(n-2) = 2n - 3 = O(n).

avatar
P*l
11
Compare one round for the largest, n-1.
Compare another round for the second largest, n-2.
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。