史上最简短的快速排序算法java实现
时间:2021-06-18
废话不多说,直接上代码,看看是不是最简洁的
static void sort(int[] ss, int b, int e) {
if (b >= e)
return;
int i = b, j = e;
int k = ss[b];
while (i < j) {
while (i < j && ss[i+1] <= k) {//收缩左边滑块
i++;
}
while (i < j && ss[j] >= k) {//收缩右边滑块
j--;
}
if (i < j) {//左右两边都收缩不动后肯定是左边比标记值大,右边比标记值小,交换左右两边滑块上的值
swap(ss,i+1,j);
}
}
swap(ss,b,i);//把标记值放左边滑块位置上
System.out.println(Arrays.toString(ss));
sort(ss, b, i - 1);
sort(ss, i+1, e);
}
private static void swap(int[] ss,int m,int n) {
int v=ss[m];
ss[m]=ss[n];
ss[n]=v;
}
