快速排序
基本思想是:通过一趟排序将要排序的数据结构分割成独立的两部分,其中一部分的所有数据都比另外一个部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归实现,从而达到整个数据变成有序序列。
通过八万个数据进行测试,发现其速度约为30毫秒,其速度与希尔排序中的位移法较为接近。
public static void QuickSort(int arr[],int left,int right){
int r=right;
int l=left;
int temp=0;
int piovt=arr[(left+right)/2];
while (l<r){
while (arr[l]<piovt){
l++;
}
while (arr[r]>piovt){
r--;
}
if(l>=r){
break;
}
temp=arr[l];
arr[l]=arr[r];
arr[r]=temp;
if(arr[l]==piovt){
r--;
}
if(arr[r]==piovt){
l++;
}
}
if(l==r){
l++;
r--;
}
if(left<r){
QuickSort(arr,left,r);
}
if(l<right){
QuickSort(arr,l,right);
}
}