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

合并两个有序的数组

http://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665

还是先遍历B中的元素到A中

再使用排序

可以用其他算法,这里使用的是快排(为什么使用快排?本菜单纯想复习一下快排而已)

也可以偷懒,直接使用工具类Arrays.sort(A);代码看起来更简洁

import java.util.*;
public class Solution {
    public void merge(int A[], int m, int B[], int n) {
        for(int i=m;i<m+n;i++){
            A[i]=B[i-m];
        } 
        quickSort(A,0,m+n-1);
    }
    //快排
    public void quickSort(int[] arr,int s,int e){
        if(s>=e){
            return;
        }
        int i,j,temp;
        i = s;
        j = e;
        temp = arr[s];
        while(i<j){
            while(i<j && arr[j]>=temp){
                j--;
            }
            while(i<j && arr[i]<=temp){
                i++;
            }
            if(i<j){
                arr[i]=arr[i]^arr[j];
                arr[j]=arr[i]^arr[j];
                arr[i]=arr[i]^arr[j];
            }
        }
        arr[s] = arr[i];
        arr[i] = temp;
        
        quickSort(arr,s,j-1);
        quickSort(arr,j+1,e);
    }
}
全部评论

相关推荐

一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务