Java排序总结

来源:互联网 发布:云和大数据的关系 编辑:程序博客网 时间:2024/06/06 07:49

各种排序的代码,自己理解,我的理解写在了笔记本上了吐舌头

public class Paixu {public static void main(String[] args) {// TODO 自动生成的方法存根          int a[]={10,8,6,4,2};          sort(a);          for(int i : a)          {          System.out.println("冒泡排序是:"+i);          }                    int b[]={10,8,6,4,2};          sort2(b);          for(int i :b)          {          System.out.println("选择排序是:"+i);          }                    int c[]={10,8,6,4,2};          sort3(c);          for(int i :c)          {          System.out.println("插入排序是:"+i);          }                    int d[]={10,8,6,4,2};          sort4(d,0,4);          for(int i :d)          {          System.out.println("快速排序是:"+i);          }} //冒泡排序     static void sort (int a[])     {     int temp = 0;     for(int i=0;i<a.length-1;i++)     {     for(int j=0;j<a.length-i-1;j++)     {     if(a[j]>a[j+1])     {     temp = a[j];     a[j] = a[j+1];     a[j+1] = temp;     }     }     }     }          //选择排序法     static void sort2 (int a[])     {     int temp =0;     for(int i=0;i<a.length-1;i++)     {     for(int j=i+1;j<a.length;j++)     {      if(a[i]>a[j])      {      temp = a[i];      a[i] = a[j];      a[j] = temp;      }     }         }     }          //插入排序法     static void sort3(int a[])     {          for(int i=1;i<a.length;i++)     {     int insertIndex =i-1;     int inser= a[i];     while(insertIndex>=0&&a[insertIndex]>inser)     {     a[insertIndex+1] = a[insertIndex];     insertIndex--;     }     a[insertIndex+1] =inser;     }     }          //快速排序法     static void sort4(int a[],int lift,int right)     {     int l = lift;     int r = right;     int temp = 0;     int middle = a[(l+r)/2];     while(l<r){       while(a[l]<middle){       l++;       }       while(a[r]>middle){       r--;       }       if(l>=r) break;       temp = a[l];       a[l] = a[r];       a[r] = temp;              if(a[l]==middle){       r--;       }       if(a[r]==middle){       l++;       }       }       if(l==r){       l++;       r--;       }       if(lift<r){       sort4(a,lift,r);       }       if(right>l){       sort4(a,l,right);       }   }}