简单的快排
和归并排序一样,快排的重点在于分区点。先解释一个最简单的快排
public void quickSort(int[] arr, int left, int right) {
if (left >= right)
return;
int pivot = partition(arr, left, right);
quickSort(arr, left, pivot-1);
quickSort(arr, pivot + 1, right);
BubbleSort.showarray(arr);
}
public int partition(int[] arr, int start, int end) {
int r = arr[end];
int i = start;
for(int j=start;j<end;j++) {
if(arr[j] < r) {
swap(arr,i,j);
i++;
}
System.out.println("in partition");
BubbleSort.showarray(arr);
}
swap(arr,i, end);
return i;
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}