快速排序(Java实现)
程序员文章站
2022-03-24 18:29:57
...
基本思想:
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的数据小,然后再按照此方法对这两部分的数据分别进行快速排序,整个过程可以递归进行,以此达到整个数据变成有序序列。
代码实现:
//测试代码
public static void main(String[] args) {
int[] arr = {3,3,1,2,33,11,33};
quickSort(arr,0,arr.length-1);
System.out.println(Arrays.toString(arr));
}
//快速排序
public static void quickSort(int[] arr,int low,int high){
if(low>=high){
return ;
}
int start = low;
int end = high;
int base = arr[low];
while(start<end){
while(start<end && arr[end]>=base){
end--;
}
if(arr[end]<=base){
int temp = arr[end];
arr[end] = arr[start];
arr[start] = temp;
}
while(start<end && arr[start]<=base){
start++;
}
if(arr[start]>=base){
int temp = arr[end];
arr[end] = arr[start];
arr[start] = temp;
}
}
quickSort(arr, low, start-1);
quickSort(arr, end+1, high);
}
学习中,有不正确的地方多多指教