|
亲!马上注册或者登录会查看更多内容!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 kamia 于 6-2-2015 11:26 PM 编辑
Mergesort
- public static int[] mergeSortedArrays(int [][] a) {
- if(a.length == 0 || a[0].length == 0) return new int[]{};
- return helper(a, 0, a.length-1);
- }
- private static int[] helper(int[][] a, int i, int j) {
- if(i == j) return a【i】;
- int mid = i + (j-i)/2;
- int[] l1 = helper(a, i, mid);
- int[] l2 = helper(a, mid+1, j);
- return merge(l1, l2);
- }
- private static int[] merge(int[] a, int[] b) {
- int[] c = new int[a.length+b.length];
- int i = 0, j = 0, k = 0;
- while(i < a.length && j < b.length) {
- if(a【i】 <= b[j]) {
- c[k++] = a[i++];
- } else {
- c[k++] = b[j++];
- }
- }
- while(i < a.length) {
- c[k++] = a[i++];
- }
- while(j < b.length) {
- c[k++] = b[j++];
- }
- return c;
- }
复制代码
|
|