码迷,mamicode.com
首页 > 编程语言 > 详细

几种排序算法java实现

时间:2021-02-26 13:12:47      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:length   oid   排序算法   实现   归并   r++   java实现   for   ==   

1.选择排序

  public void selectSort(int a[]){
          for(int i=0;i<a.length;i++){
              int min=i;
              for(int j=i;j<a.length;j++){
                  if(a[min]>a[j]) min=j;
              }
              int temp=a[i];
              a[i]=a[min];
              a[min]=temp;
          }
      }

2.插入排序

 public void insertSort(int[] a){
        for(int i=1;i<a.length;i++){
           int j=i,cur=a[i];
           while(j>0&&cur<a[j-1]){
               a[j]=a[j-1];
               j--;
           }
           a[j]=cur;
        }
    }

3.归并排序

public int[] mergeSort(int a[]){
        int l=0,r=a.length-1,m=(l+r)/2;
        if(l==r) return a;
        int[] sub1=Arrays.copyOfRange(a,l,m+1);
        int[] sub2=Arrays.copyOfRange(a,m+1,r+1);
        sub1=mergeSort(sub1);
        sub2=mergeSort(sub2);
        a=merge(sub1,sub2);
        return a;
    }
 public int[] merge(int[] a,int[] b){
        int[] res=new int[a.length+b.length];
        int i=0,j=0,r=0;
        while(i<a.length&&j<b.length){
            if(a[i]<b[j])
                res[r++]=a[i++];
            else
                res[r++]=b[j++];
        }
        while(i<a.length) res[r++]=a[i++];
        while(j<b.length) res[r++]=b[j++];
        return res;
    }

4.快排

 public void quickSort(int[] a,int l,int r){
        if(l>=r) return;
        int mid=move(a,l,r);
        quickSort(a,l,mid-1);
        quickSort(a,mid+1,r);
    }
    public int move(int[] a,int l,int r){
        int base=a[l],left=l;
        while(l!=r){
            while(l<r&&base<=a[r]) r--;
            while(l<r&&base>=a[l]) l++;
            if(l<r){
                int tmp=a[l];
                a[l]=a[r];
                a[r]=tmp;
            }
        }
        a[left]=a[l];
        a[l]=base;
        return l;
    }

几种排序算法java实现

标签:length   oid   排序算法   实现   归并   r++   java实现   for   ==   

原文地址:https://www.cnblogs.com/MuiseSim/p/14448812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!