Java简单实现快速排序

分治法

class QUICSORT{
分割:   
  static int does(int[] arr,int low,int high){  
    
     int first=low;
     int last=high;
     int K=arr[low];
     while(first<last){
     while(first<last && K<=arr[last]){
         last--;
         }
              arr[first]= arr[last];
      while(first<last && K>=arr[first]){
          first++;
      }
               arr[last]=arr[first];
     }
            arr[first]=K;
            return first;

}

递归:

 static void quick(int[] arr,int low,int high){
     if(low<high){
     int middle=does(arr,low,high);
     quick(arr,low,middle-1);
     quick(arr,middle+1,high);
     }
    
}
 

}

测试:

public class Quick {
  public static void main(String[] arg){
      int[] arr={34,3,23,53,2,23,7,90,23,45,78,14,5,14,10};  
      
      QUICSORT qs=new QUICSORT();  
      qs.quick(arr,0,arr.length-1);  
      
      for(int i=0;i<arr.length;i++){  
          System.out.print(arr[i]+" ");  
      }   
  }

}

运行输出结果:2 3 5 7 10 14 14 23 23 23 34 45 53 78 90

经验分享 程序员 微信小程序 职场和发展