java实现快速排序:
- public class QuickSort {
- public static void sort(int [] array , int left ,int right)
- {
- int i,j,tValue,bValue ;
- if(left>right)
- {
- return ;
- }
- i=left;
- j=right;
- //基数
- bValue=array[left];
- while (i!=j) {
- //先从右侧--移动,右侧放置大于基数的元素
- while (array[j]>=bValue&&i<j) {
- j--;
- }
- //左侧++移动,左侧放置小于基数的元素
- while(array[i]<=bValue&&i<j)
- {
- i++;
- }
- if(i<j)
- {
- tValue=array[i];
- array[i]=array[j];
- array[j]=tValue;
- }
- }
- //当i和j移动到相同位置时,交换基数
- array[left]=array[i];
- array[i]=bValue;
- //递归执行
- sort(array,left,i-1);
- sort(array,i+1,right);
- }
- public static void main(String[] args) {
- int a[] ={6,1,2,7,9,3,4,5,10,8};
- sort(a,0,a.length-1);
- for(int v: a){
- System.err.print(v+" ");
- }
- }
- }
输出结果:
1 2 3 4 5 6 7 8 9 10