Redian新闻
>
Given two sorted list, find the k smallest number (binary search)
avatar
Given two sorted list, find the k smallest number (binary search)# JobHunting - 待字闺中
c*r
1
这个binary search是怎么做啊?
我只想到merge再直接找第k个
avatar
s*n
2
假设第一个数组有L个元素在前k个元素里(两个数组) 然后binary L
avatar
p*2
3
array: A, B
index: i, j
你需要找到
1. i+j+2=k
2. B[j]3. A[i]return max(A[i], B[j])
at the beginning
i=0
j=k-2
然后binary search。
avatar
s*j
4
int a[maxn],b[maxn];
int find(int aleft,int aright,int bleft,int bright,int k) {
if ((aright-aleft+1)+(bright-bleft+1)cout<return 0;
}
if (aleft>aright)
return b[bleft+k-1];
if (bleft>bright)
return a[aleft+k-1];
int amid=(aleft+aright)>>1;
int bmid=(bleft+bright)>>1;
if (a[amid]<=b[bmid])
if (k<=(amid-aleft)+(bmid-bleft)+1)
return find(aleft,aright,bleft,bmid-1,k);
else
return find(amid+1,aright,bleft,bright,k-(amid-aleft+1));
else
if (k<=(amid-aleft)+(bmid-bleft)+1)
return find(aleft,amid-1,bleft,bright,k);
else
return find(aleft,aright,bmid+1,bright,k-(bmid-bleft+1));
}

【在 c*******r 的大作中提到】
: 这个binary search是怎么做啊?
: 我只想到merge再直接找第k个

avatar
k*n
5
最简单的办法是坐n-way merge sort

【在 c*******r 的大作中提到】
: 这个binary search是怎么做啊?
: 我只想到merge再直接找第k个

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