c++实现快排基础版本

#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;
void swap(int& a, int& b) {
    int t = a;
    a = b;
    b = t;
}
void quicksort(vector<int>&ptr,int begin,int end) {
    
    
    if (begin < ptr.size() && end < ptr.size()) {
        int base = ptr[begin];
        int i = begin, j = end;
        /*for (auto a : ptr)
            cout << a << ends;
        cout << endl;*/
        //cout << i << " " << j << endl;
        if (begin < end) {
            while (i < j) {
                if (ptr[j] < base)
                {
                    if (ptr[i] > base) {
                        swap(ptr[i], ptr[j]);
                    }
                    else i++;

                }
                else j--;
            }
            swap(ptr[begin], ptr[i]);
            for (auto a : ptr)
                cout << a << ends;
            cout << endl;
            quicksort(ptr, begin, i - 1);
            quicksort(ptr, i + 1, end);
        }
    }
};

int main()
{
    vector<int>a{ 61,177,61,74,19,31,45,55,101,81 };
    for (auto i : a)cout << i << ends;
    cout << endl;
    quicksort(a,0,a.size()-1);
    for (auto i : a)cout << i << ends;
}

 

posted @ 2020-07-15 18:21  世界を変える御宅族  阅读(198)  评论(0编辑  收藏  举报