快排:排序中的明星算法,也几乎是必须掌握的算法,这次我们来领略以下快排为何魅力如此之大。
代码:
static void quick(int []a, int i, int j) { int k = i; int m = i; int l = j; int pivot = a[i]; while (j > i) { while (a[j] > pivot && j != i) { j--; } if (i != j) a[i] = a[j]; else { a[j] = pivot; k = j; break; } while(a[i] < pivot && j != i) i++; if (i != j) a[j] = a[i]; else { a[i] = pivot; k = i; } } if(k >m && k < l) { quick(a, m, k - 1); quick(a, k + 1, l); } } public static void main(String []args) { // int [] a = {6,4,8,9,3,1,2,7}; int [] a = {49,38,65,97,76,13,27}; quick(a,0,a.length - 1); for (int i :a) System.out.print(i); }