Java实现快速排序
import java.util.Arrays;
public class App {
public static void main( String[] args ){
int[] a = {8,3,5,9,0,1,2,4};
quickSort(a,0,a.length-1);
System.out.println(Arrays.toString(a));
}
// 异或运算,不需要临时变量存储,速度较快(下面例子是二进制)
// 异或运算的原理是相同的为0 ,不同为1
// a=3=11
// b=2=10
// a=a^b=11^10=01
// b=a^b=01^10=11
// a=a^b=01^11=10
public static int[] quickSort(int[] arr,int start,int end){
int left = start,right= end;
if (start>=end){
return arr;
}else{
int startDate = arr[start];
while (left
// 找到比基数startDate小的数
while (arr[right]>=startDate && left//如果找到就交换
arr[left]^=arr[right];
arr[right]^=arr[left];
arr[left]^=arr[right];
}
}
//将基数位置交换,如果找不到交换还是原来的数据
arr[start]=arr[left];
arr[left]=startDate;
//二分思想,从找到的位置开始继续寻找,不断的缩短空间
quickSort(arr,start,left-1);
quickSort(arr,left+1,end);
}
return arr;
}
}
数据:int[] a = {8,3,5,9,0,1,2,4};
结果:[0, 1, 2, 3, 4, 5, 8, 9]



