题解 | #合并两个有序的数组#

合并两个有序的数组

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;
                    }
                }
            }
        }
    }
全部评论

相关推荐

07-15 11:35
门头沟学院 Java
心里踏实多了,可以安心准备论文了
看不见我ffgh:牛哇佬,要不要来试一试pdd,部门氛围很好
京东开奖153人在聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务