您的位置:首页 > 其它

获取两个已排序数组的第K大值

2015-11-09 16:41 260 查看
int getKth(int* nums1, int m, int* nums2, int n, int k)
{
if(m > n)
return getKth(nums2, n, nums1, m, k);
if(m == 0)
return nums2[k-1];
if(k == 1)
return min(nums1[0], nums2[0]);

int i = min(m, k/2);
int j = min(k/2, n);
if(nums1[i-1] > nums2[j-1])
return getKth(nums1, m, nums2+j, n-j, k-j);
else
return getKth(nums1+i, m-i, nums2, n, k-i);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  排序