合并两个已排序数组

来源:互联网 发布:淘宝怎么合并订单 编辑:程序博客网 时间:2024/05/16 01:04

public static void main(String[] args) {int[] data1 = {1, 3, 5, 7};int[] data2 = {2, 4, 6, 8};int[] dataMerged = mergeArray(data1, data2);for (int i = 0; i < dataMerged.length; i++) {System.out.println(i + " : " + dataMerged[i]);}}public static int[] mergeArray(int[] array1, int[] array2) {int length = array1.length + array2.length;int[] arrayMerged = new int[length];int i = 0;int j = 0;int k = 0;int length1 = array1.length;int length2 = array2.length;while (i< length1 && j < length2) {if (array1[i] < array2[j]) {//拷贝值较小的元素,填充合并数组arrayMerged[k++] = array1[i++];} else if (array1[i] > array2[j]) {arrayMerged[k++] = array2[j++];} else {arrayMerged[k++] = array1[i++];arrayMerged[k++] = array1[j++];}}if (i >= length1) {while (j < length2) {arrayMerged[k++] = array2[j++];}} else {while (i < length1) {arrayMerged[k++] = array1[i++];}}return arrayMerged;}

将两个已排序数组,合并成另一个。

先要条件:两个数组元素已经有序;数组大小不定。

最后结果:形成一个新数组,包含两个数组的所有元素,并且,新数组是有序的。


代码如上。

0 0
原创粉丝点击