合并两个有序数组
-
题目:
有两个有序数组A和数组B,合并到一个数组C中,保证数组C仍然有序 -
思路:
假设两个有序数组都是升序,新建数组C,长度为数组A和数组B的长度之和,从索引0出依次设置数组C对于下标的值 -
代码:
public class SortedArraySort {
public static void main(String[] args) {
int[] a = {1, 3, 5, 7, 9, 11, 13};
int[] b = {2, 4, 6, 8, 10, 12};
int[] c = new int[a.length + b.length];
int i = 0;
int j = 0;
for (int k = 0; k < c.length; k++) {
if (i < a.length && j < b.length) {
if (a[i] <= b[j]) {
c[k] = a[i++];
} else {
c[k] = b[j++];
}
// i < a.length && j >= b.length
} else if (i < a.length) {
c[k] = a[i++];
// i >= a.length && j < b.length
} else if (j < b.length) {
c[k] = b[j++];
} else {
throw new RuntimeException("不可能情况");
}
}
for (int k = 0; k < c.length; k++) {
System.out.println("c[" + k + "] = " + c[k]);
}
}
}
-
总结:
以上为最简单的方法,应该还有更好的方法,待完善 -
完。