快速排序
通过一趟排序将待排记录分隔成独立的两部分,其中的一部分比关键字小,后面一部分比关键字大,然后再对这前后的两部分分别采用这种方式进行排序,通过递归的运算最终达到整个序列有序。
public class Main {
public static void main(String[] args) {
int[] arr = new int[]{5, 4, 5, 8, 7, 19, 15, 14, 0, 2, 6};
quickSort(arr,0,arr.length - 1);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
static void quickSort(int[] arr,int start,int end){
if (start >= end) return;
int k = arr[start],low = start,high = end;
while (low < high){
while (low < high && k <= arr[high]) high--;
arr[low] = arr[high];
while (low < high && k >= arr[low]) low++;
arr[high] = arr[low];
}
arr[high] = k;
quickSort(arr,start,high - 1);
quickSort(arr,high + 1,end);
}
}