快速排序-Java实现
快速排序采用分治法:
如下图所示:
public class QuickSort {
public static void quickSort(int[] a, int low, int high) {
if (low > high){
return;
}
int start = low;
int end = high;
int key = a[low];
while (low < high){
while (low <high && a[high] > key){
high--;
}
while (low < high && a[low] <= key){
low++;
}
if(a[low] > a[high]){
int temp = a[low];
a[low] = a[high];
a[high] = temp;
}
}
if(low == high){
a[start] = a[high];
a[high] = key;
}
if(low > start){
quickSort(a,start,low-1);
}
if(end > low){
quickSort(a,low+1,end);
}
public static void main(String[] args) {
int[] a = {3, 2, 5, 1, 4, 9, 6, 8, 8, 0, 1};
System.out.print("排序前:");
for (int i : a) {
System.out.print(i);
}
System.out.println();
quickSort(a,0,a.length-1);
System.out.print("排序后:");
for (int i : a) {
System.out.print(i);
}
System.out.println();
}
}