Skip to content

c++手撕快排

c++
#include <iostream>
using namespace std;

void quicksort(int a[], int l, int h)
{
    if(l>=h)
        return;
    int low = l, high = h;
    int temp = a[low];
    while(low<high){
        while(low<high&&a[high]>=temp){
            high--;
        }
        if(low<high&&a[high]<=temp){
            a[low] = a[high];
        }

        while(low<high&&a[low]<=temp){
            low++;
        }
        if(low<high&&a[low]>=temp){
            a[high] = a[low];
        }
    }
    a[low] = temp;
    quicksort(a, l, low - 1);
    quicksort(a, low + 1, h);
}

int main()
{
    int n;
    cin >> n;
    int a[100];
    for (int i = 0; i < n; i++)
    {
        cin >> a[i];
    }
    quicksort(a, 0, n - 1);
    for (int i = 0; i < n; i++)
    {
        cout << a[i] << " ";
    }
    return 0;
}

Released under the MIT License.