快速排序/选择排序
class Main {
public static void main(String[] args) {
int[] nums = new int[]{6, 3, 71, 1, 57, 0, 22, 6, 13, 8, 31, 8, 9};
quickSort(nums, 0, nums.length - 1);
// selectionSort(nums);
for (int i=0;i<nums.length;i++) {
System.out.println(nums[i]);
}
}
// 快排
public static void quickSort(int[] nums, int start, int end) {
if (start >= end) {
return;
}
int left = start;
int right = end;
int pivot = nums[(left + right) / 2];
while (left <= right) {
while (left <= right && nums[left] < pivot) {
left ++;
}
while (left <= right && nums[right] > pivot) {
right --;
}
if (left <= right) {
int temp = nums[left];
nums[left] = nums[right];
nums[right] = temp;
left ++;
right --;
}
}
quickSort(nums, start, right);
quickSort(nums, left, end);
}
//选排
public static void selectionSort(int[] nums) {
if (nums.length == 0) {
return;
}
for (int i = 0; i < nums.length; i ++) {
int minIndex = i;
for (int j = i; j < nums.length; j ++) {
if (nums[j] < nums[minIndex]) {
minIndex = j;
}
}
int temp = nums[i];
nums[i] = nums[minIndex];
nums[minIndex] = temp;
}
}
}
输出结果:
0
1
3
6
6
8
8
9
13
22
31
57
71