简单实现快速排序,注释在代码里面已经写好了,比较容易理解,直接上代码。
package com.mrz.test;
public class QuickSort {
public static void main(String[] args) {
int[] arr = {6,9,5,7,4};
Quick(arr, 0, arr.length-1);
for(int i = 0;i < arr.length;i++) {
System.out.println(arr[i]);
}
}
public static void Quick(int[] arr,int L,int R) {
if(L>=R)
return ;
int left=L,right=R;
int pivot = arr[left]; //设置中心轴
while(left=pivot) { //左下标小于右边下标,数组右侧下标值大于等于中心轴,则右侧下标自减
right--;
}
if(left=right) { //如果左下标大于等于右下标,则说明排序结束,也就是已经把中心轴分好了,左边是小于中心轴的值,右边是大于中心轴的值
arr[left]=pivot; //将中心轴赋值给左下标(或右下边)位置
}
}
Quick(arr,L,right-1); //用递归分别对左侧值进行排序,需要注意的是别把这里的两个方法写到上面的while循环里面了
Quick(arr, right+1, R); //用递归对右侧值进行排序
}
}
如果还是不懂可以私信我或者看下下面的视频,个人觉得比较容易理解
快速排序算法_哔哩哔哩_bilibili



