获取两个已排序数组的第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); }
相关文章推荐
- 在命令行用 sort 进行排序
- 文件遍历排序函数
- C#选择排序法实例分析
- C#插入法排序算法实例分析
- C#实现Datatable排序的方法
- SQLSERVER的排序问题结果不是想要的
- Windows Powershell排序和分组管道结果
- C#通过IComparable实现ListT.sort()排序
- C#选择法排序实例分析
- SQL学习笔记四 聚合函数、排序方法
- C#对list列表进行随机排序的方法
- 一根网线内的8根线哪4根是传输数据的,哪四根是防干扰的
- C#折半插入排序算法实现方法
- SQL进行排序、分组、统计的10个新技巧分享
- C++实现位图排序实例
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- SQL行号排序和分页(SQL查询中插入行号 自定义分页的另类实现)
- PHP下对数组进行排序的函数
- PHP数组排序之sort、asort与ksort用法实例