胖阿!

 avatar
unknown
c_cpp
10 days ago
1.1 kB
5
Indexable
#include<bits/stdc++.h>
using namespace std;
#define pb push_back

vector<int> a;
void quick(int l, int r){
    if(l >= r) return;
    else if(l+1 == r){
        if(a[l]>a[r]) swap(a[l], a[r]);
        return;
    }

    int p = a[l+1];
    cout << "pivot:" << p << endl;
    vector<int> mi, ma;
    for(int i = l; i <= r; i++){
        if(i==l+1) continue;
        if(a[i] < p) mi.pb(a[i]);
        else ma.pb(a[i]);
    }
    int k = l;
    for(int i: mi){
        cout << i << " ";
        a[k] = i;
        k++;
    }
    cout << endl;
    a[k] = p;
    int po = k;
    k++;

    for(int i: ma){
        cout << i << " ";
        a[k] = i;
        k++;
    }
    cout << endl;


    quick(l, po-1);
    quick(po+1, r);

}


int main(){
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    int n; cin >> n;
    a.resize(n);
    for(int i = 0; i < n ; i++){
        cin >> a[i];
    }
    quick(0, n-1);
    cout << "result:";
    for(int i = 0; i < n; i++){
        cout << a[i];
        if(i!=n-1) cout << ",";
    }
    cout << endl;

}
Editor is loading...
Leave a Comment