Java简单实现快速排序

来源:互联网 发布:程序员面试简历模板 编辑:程序博客网 时间:2024/06/08 10:17


分治法


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

原创粉丝点击