public class QuickSort {
public static int[][] sortCases = {
{1},
{1, 2},
{2, 1},
{1, 2, 3},
{1, 3, 2},
{2, 1, 3},
{2, 3, 1},
{3, 1, 2},
{3, 2, 1},
{2, 4, 3, 3, 5, 6, 4, 6, 5, 2, 1},
{1, 2, 2, 3, 1, 1, 1, 4, 3, 3, 3, 5, 5, 5, 5},
{3, 3, 5, 4, 2, 1, 2, 3, 3, 5, 6, 7, 8, 7, 6, 7, 4, 2, 3, 4, 1, 5, 3, 4, 4, 5, 2, 0},
};
private static void quickSort(int[] array, int start, int end) {
if (start < end) {
int mid = partition(array, start, end);
quickSort(array, start, mid - 1);
quickSort(array, mid + 1, end);
}
}
private static int partition(int[] src, int start, int end) {
int target = src[start];
while (start < end) {
while (start < end && src[end] >= target) {
end--;
}
src[start] = src[end];
while (start < end && src[start] <= target) {
start++;
}
src[end] = src[start];
}
// 此时 start == end
src[start] = target;
return start;
}
public static void main(String[] args) {
testSort();
}
private static void testSort() {
for (int[] each : sortCases) {
quickSort(each, 0, each.length - 1);
checkArray(each);
}
}
private static void checkArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
if (i != 0 && arr[i - 1] > arr[i]) {
System.out.println("error");
}
System.out.print(arr[i] + " ");
}
System.out.println();
System.out.println("Correct!");
}
}
快速排序
最新推荐文章于 2021-07-24 23:27:25 发布