编程珠玑 第十一章总结

2017-08-03  本文已影响0人  fertilizer

这一章主要讲了quick-sort和其改进的过程。下面主要总结一下改进的动机。

void qsort(vector<int>& v, int l, int u) {
    if (l >= u) return;
    int t = v[l]; int i = l; int j = u+1;
    while(true) {
        do {
            i++;
        }while(i <= u && v[i] < t);
        do {
            j--;
        }while(v[j] > t);
        if (i > j) {
            break;
        }
        swap(v[i], v[j]);
    }
    swap(v[j], v[l]);
    qsort(v, l, i - 1);
    qsort(v, i + 1, u);
}
if(u - l < threshold)
  return;

提前终止排序,最后再使用插入排序的算法对整体排序。

上一篇 下一篇

猜你喜欢

热点阅读