史上最简短的快速排序算法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; }