题解 | #合并两个有序的数组#
合并两个有序的数组
http://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665
常规for循环
直接贴代码,代码里有注释
public static void merge(int A[], int m, int B[], int n) { if(A.length==n){//如果A数组为空,则直接将B数组添加到A数组即可 for(int i=0;i<B.length;i++){ A[i]=B[i]; } }else{ for (int i = 0; i <n; i++) { //第一层循环,遍历数组B for (int j = 0; j <m; j++) {//第二层循环,B[i]比较A中的所有数据; if(B[i]<=A[j]){ //如果B[i]较A中元素小,则插入B[i] for (int k = m-1; k >=j; k--) {//A中元素后移; A[k+1]=A[k]; } m++; //更新A中的数据个数; A[j]=B[i]; //B[i]插入 break; } if(j==m-1){ //B[i]中的元素大于A中所有元素,则直接添加 A[j+1]=B[i]; m++; break; } } } } }