一个循环合并两个有序数组

		int[] a = { 1, 3, 5, 7,7 };
		int[] b = { 2, 4, 6, 8,10,12,13 };
		int[] c = new int[a.length+b.length];
		int ai = 0;
		int bi = 0;
		int ci = 0;
		for (ci = 0; ci < a.length+b.length; ci++) {
			//如果一个数组已经放完,直接将另外一个数组copy。
			if(ai == a.length){
				c[ci] = b[bi++];
				continue;
			}
			if(bi == b.length){
				c[ci] = a[ai++];
				continue;
			}
			//选中最小的放到新数组中,而最小的就是各个数组的第一个。
			if (a[ai] > b[bi]) {
				c[ci] = b[bi];
//				if(bi+1 < b.length){
					bi++;
//				}
			} else {
				c[ci] = a[ai];
//				if(ai+1 < a.length){
					ai ++;
//				}
			}
		}
		System.out.println(Arrays.toString(c));
	






你可能感兴趣的:(一个循环合并两个有序数组)