快速排序法 quickSort---java

来源:互联网 发布:人工智能三大定律 编辑:程序博客网 时间:2024/05/16 03:05

快速排序法:

public class Main {    public static void main(String[] args) {          int a[]={7,8,1,3,5};          new Main(a);    }     public Main(int[] a){         System.out.println("排序前:");         print(a);         quickSort(a,0,a.length-1);         System.out.println();         System.out.println("排序后:");         print(a);     }     public int getMiddle(int[] list,int low,int high){            int temp=list[low];//数组的第一个作为中轴            while(low<high){                while(low < high && list[high]>=temp) high--;                list[low]=list[high];//比中轴小的数移到低端                while(low < high && list[low]<=temp) low++;                list[high]=list[low];//比中轴大的移动到高端            }           list[low]=temp;//中轴记录到为尾            // System.out.println("low==high? "+(low==high)+"low= "+low+"high= "+high);           return low;//返回中轴位置           //判断得知,最后三个中轴为3 2 0     }     public void quickSort(int a[],int low,int high){         if(low<high){             int middle=getMiddle(a, low, high);//将数组a一分为二             quickSort(a, low, middle-1);//对小于中轴的部分递归排序             quickSort(a, middle+1, high);//对大于中轴的部分递归排序         }     }      void print(int []a){         for(int s: a)             System.out.print(s+" , ");        }}   
本算法应做到信手拈来。

1 0
原创粉丝点击