快速排序.txt

来自「资深C++讲师授课代码」· 文本 代码 · 共 29 行

TXT
29
字号
inline void swap(int& x, int& y)
{
        int t=x;
        x = y;
        y = t;
}
void sort(int* a, int n)
{
        if(n<=1) return;
        if(n==2){
                if(a[1]<a[0]) swap(a[1], a[0]);
                return;
        }
        swap(*a, a[n/2]);
        int* lp = a+1;
        int* rp = a+(n-1);
        int pivot = *a;
        while(lp<rp){
                while(lp<rp&&*lp<pivot) ++lp;
                while(a<rp&&*rp>=pivot) --rp;
                if(lp<rp) swap(*lp, *rp);
        }
        swap(*a, *rp);
        sort(a, rp-a);
        sort(rp+1, n-1-(rp-a));
}

bash-2.05$

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?