快速排序的c语言实现

#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;

void qsort(int low,int high,int *a);
int  parti(int low,int high,int *a);
int main()
{
        int n;
        int  a[1000];
        cin>>n;
        for(int i=0;i<n;i++)
                cin>>a[i];
      qsort(0,n-1,a);
        for(int i=0;i<n;i++)
                cout<<a[i]<<endl;


    return 0;
}
int  parti(int low,int high,int *a)
{
        int key=a[low];
        while(low<high)
        {
        while(low<high&&a[high]>=key)high--;
        a[low]=a[high];
        while(low<high&&a[low]<=key)low++;
        a[high]=a[low];
        }
        a[low]=key;
        return low;
}
void qsort(int low,int high,int *a)
{
if(low < high)
{
        int mid= parti(low,high,a);
        qsort(low ,mid-1,a);
        qsort(mid+1,high,a);

}
}

猜你喜欢

转载自blog.csdn.net/qq_34552393/article/details/79242272