一、介绍
二、实现
2.1建立开始函数
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int nums[] = {49, 38, 65, 97, 76, 13, 27, 49};
sort(nums, 0, nums.length - 1);
}
2.2 划分左边和右边,然后通过递归不断细化,直至low==high
public static void sort(int[] nums, int low, int high) {
if (low < high) {
int mid = quicksort(nums, low, high);//获取基准值
sort(nums, low, mid - 1);//处理左边
sort(nums, mid + 1, high);//处理右边
}
}
2.3 排序
public static int quicksort(int[] nums, int low, int high) {
int temp = nums[low];//记录基准值
while (low < high) {
//===============================排序过程
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
} System.out.println();
//===============================排序过程
//===============================右边排序
while (temp <= nums[high] && low < high) {
high--;
}
nums[low] = nums[high];//直接把左边赋值,此时nums[low]丢失
//===============================左边排序
while (temp >= nums[low] && low < high) {
low++;
}
nums[high] = nums[low];//直接把右边边赋值
}
nums[low] = temp;//将基准值付给丢失的nums[low]
return low;
}
}