欢迎光临散文网 会员登陆 & 注册

【LittleXi】快速排序

2023-03-06 17:05 作者:温蒂啦啦啦  | 我要投稿

思路:主要还是采用分治思想,对于每一小块,设置“信标”,将小于信标的放在左边,将大于信标的放在右边

int partition(vector<int>& arr, int l, int r)

{

    int flag = arr[r];

    int x = l;

    for (int j = l; j < r; j++)

    {

        if (arr[j] < flag)

        {

            swap(arr[j], arr[x]);

            x++;

        }

    }

    swap(arr[x], arr[r]);

    return x;

}


void quikeSort(vector<int>& arr, int l,int r)

{

    if (l < r)

    {

        int q= partition(arr, l, r);

        quikeSort(arr, l, q - 1);

        quikeSort(arr, q + 1, r);

    }

}


【LittleXi】快速排序的评论 (共 条)

分享到微博请遵守国家法律