您的位置:首页 > 编程语言 > Java开发

Java简单实现快速排序

2017-05-20 16:27 218 查看
分治法

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: