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