Cod sursa(job #1009248)

Utilizator NitaMihaitavoidcube NitaMihaita Data 12 octombrie 2013 18:35:07
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
using namespace std;
int v[500001];
//  QuickSort
int pivot(int i,int j)
{
    int x,k;
    x=v[i];
    k=i;
    while(i<=j)
    {
        while(i<=j && v[i]<=x)++i;
        while(i<=j && v[j]>=x)--j;
        if(i<j)v[i]=(v[i]+v[j])-(v[j]=v[i]);
    }
    v[k]=v[j];
    v[j]=x;
    return j;
}
void QuickSort(int i,int j)
{
    if(i<j)
    {
        int p=pivot(i,j);
        QuickSort(i,p-1);
        QuickSort(p+1,j);
    }
}
int main()
{
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    int i;
    f>>v[0];
    for(i=1;i<=v[0];++i)
        f>>v[i];
    QuickSort(1,v[0]);
    for(i=1;i<=v[0];g<<v[i]<<" ",++i);
    f.close();
    g.close();
    return 0;
}