排序总结-快速排序
代码参考自http://blog.csdn.net/morewindows/article/details/6684558
int AdjustOrder(int[] s, int l, int r) { int i = l, j = r; int x = s[i]; //从右向左,将小于x的放到左边 while (i < j && x < s[j]) j--; if (i < j) { s[i] = s[j]; i++; } //从左向右,将大于x的放到右边 while (i < j && x > s[i]) i++; if (i < j) { s[j] = s[i]; j--; } //当i=j,第一次循环结束 s[i] = x; return i; } void QuickSort(int[] s, int l, int r) { if (l < r) { int i = AdjustOrder(s, l, r); QuickSort(s, l, i - 1); QuickSort(s, i + 1, r); } }
浙公网安备 33010602011771号