Cod sursa(job #1275970)

Utilizator bpalaniciPalanici Bogdan bpalanici Data 25 noiembrie 2014 20:43:36
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <cstdio>
#include <algorithm>
using namespace std;

inline void scanfvect(int  v[1005],int &n)
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&v[i]);
}
inline void printfvect(int v[1005],int n)
{
    for(int i=1;i<=n;i++) printf("%d ",v[i]);
}
int v[500010],n;

inline void divide(int s,int d,int &m)
{
    int is=1,id=0;
    while(s<=d)
    {
        if(v[s]>v[d])
        {
            swap(v[s],v[d]);swap(is,id);
        }
        m=s;
        s+=is;
        d-=id;
    }
}

void quicksort(int v[500000],int s,int d)
{
    int m;
    if(s<=d)
    {
        divide(s,d,m);
        quicksort(v,s,m-1);
        quicksort(v,m+1,d);
    }
}
int main()
{
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    scanfvect(v,n);
    quicksort(v,1,n);
    printfvect(v,n);
}