【代码】Java实现快速排序

前言

Java实现快速排序(QUI)

正序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int[] quickSort(int[] arr, int left, int right) {
if (left < right) {
int index = divide(arr, left, right);
quickSort(arr, left, index - 1);
quickSort(arr, index + 1, right);
}
return arr;
}

int divide(int[] arr, int left, int right) {
int pivot = left;
int index = left + 1;
for (int i = index; i <= right; i++) {
if (arr[i] < arr[pivot]) {
int temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
index++;
}
}
int temp = arr[pivot];
arr[pivot] = arr[index - 1];
arr[index - 1] = temp;
return index - 1;
}

void sortASC(int[] nums) {
quickSort(nums, 0, nums.length - 1);
}

倒序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int[] quickSort(int[] arr, int left, int right) {
if (left < right) {
int index = divide(arr, left, right);
quickSort(arr, left, index - 1);
quickSort(arr, index + 1, right);
}
return arr;
}

int divide(int[] arr, int left, int right) {
int pivot = left;
int index = left + 1;
for (int i = index; i <= right; i++) {
if (arr[i] > arr[pivot]) {
int temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
index++;
}
}
int temp = arr[pivot];
arr[pivot] = arr[index - 1];
arr[index - 1] = temp;
return index - 1;
}

void sortDESC(int[] nums) {
quickSort(nums, 0, nums.length - 1);
}

完成