有序数组的合并问题

1.有两个有序数组A,B。其中数组A的长度足以放下A和B 的所有元素,现在要求将A和B数组合并到A中,合并后仍要求A是一个有序数组,给出你的算法。

/**
     * 
     * @param a
     *            ,a数组的长度足够长,足够放下a和b的所有元素
     * @param b
     * @param size为数组a的有效元素个数
     *            

* Description: *

*/ public void arrayMerge(int a[], int b[], int size) { int storeIndex = size + b.length - 1; int i = size - 1; int j = b.length - 1; while (i >= 0 && j >= 0) { if (a[i] >= b[j]) { a[storeIndex] = a[i];// 大的元素直接放到最终位置 i--; storeIndex--; } else if (a[i] < b[j]) { a[storeIndex] = b[j];// 将b中的元素插入到最终位置 j--; storeIndex--; } } while (j >= 0) { a[storeIndex--] = b[j--]; } } public static void main(String[] args) { Sort s = new Sort(); int a1[] = new int[8]; a1[0] = 3; a1[1] = 8; a1[2] = 10; // int a2[] = { 1, 2, 4, 7 }; int a2[] = { 7, 12 }; s.arrayMerge(a1, a2, 3); System.out.println("after:" + Arrays.toString(a1)); }

你可能感兴趣的:(有序数组的合并问题)