【LittleXi】快速排序
思路:主要還是采用分治思想,對(duì)于每一小塊,設(shè)置“信標(biāo)”,將小于信標(biāo)的放在左邊,將大于信標(biāo)的放在右邊
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);
????}
}
標(biāo)簽: