Quick Sort

#include <iostream>
using namespace std;
#define siz 1000000

int a[siz];

void swap(int i, int j)
{
    int temp=a[i];
    a[i]=a[j];
    a[j]=temp;
}

int partion(int a[], int p, int r)
{
    int i=p-1;
    int x=a[r];
    for(int j=p;j<=r-1;j++)
    {
        if(a[j]<=x)
        {
            i++;
            swap(i,j);
        }
    }
    swap(i+1,r);
    return i+1;
}

void quick_sort(int a[], int p, int r)
{
    if(p<r)
    {
        int q=partion(a,p,r);
        quick_sort(a,p,q-1);
        quick_sort(a,q+1,r);
    }
}
int main()
{
    int n;
    while(cin>>n)
    {
        for(int i=0;i<n;i++) cin>>a[i];
        quick_sort(a,0,n-1);
        for(int i=0;i<n;i++) cout<<a[i]<<endl;
    }
    return 0;
}

No comments:

Post a Comment