java实现快速排序

来源:互联网 发布:顶尖数据恢复破解版 编辑:程序博客网 时间:2024/06/09 19:43

java实现快速排序:

[java] view plaincopy
  1. public class QuickSort {  
  2.   
  3.     public static void sort(int [] array , int left ,int right)  
  4.     {  
  5.         int i,j,tValue,bValue ;  
  6.         if(left>right)  
  7.         {     
  8.             return ;  
  9.         }  
  10.         i=left;  
  11.         j=right;  
  12.         //基数  
  13.         bValue=array[left];  
  14.         while (i!=j) {  
  15.             //先从右侧--移动,右侧放置大于基数的元素  
  16.             while (array[j]>=bValue&&i<j) {  
  17.                 j--;  
  18.             }  
  19.             //左侧++移动,左侧放置小于基数的元素  
  20.             while(array[i]<=bValue&&i<j)  
  21.             {  
  22.                 i++;  
  23.             }  
  24.             if(i<j)  
  25.             {  
  26.                 tValue=array[i];  
  27.                 array[i]=array[j];  
  28.                 array[j]=tValue;  
  29.             }  
  30.         }  
  31.         //当i和j移动到相同位置时,交换基数  
  32.         array[left]=array[i];  
  33.         array[i]=bValue;  
  34.         //递归执行  
  35.         sort(array,left,i-1);  
  36.         sort(array,i+1,right);  
  37.     }  
  38.       
  39.     public static void main(String[] args) {  
  40.         int a[] ={6,1,2,7,9,3,4,5,10,8};  
  41.         sort(a,0,a.length-1);  
  42.         for(int v: a){  
  43.             System.err.print(v+" ");  
  44.         }  
  45.     }  
  46. }  
  47.    

输出结果:

1 2 3 4 5 6 7 8 9 10 

0 0