Cod sursa(job #1499291)

Utilizator Julian.FMI Caluian Iulian Julian. Data 10 octombrie 2015 14:19:57
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <cstdio>
#define nmax 500009

using namespace std;
int n,a[nmax];
ifstream fin("algsort.in");
ofstream fout("algsort.out");

void sortare(int st,int dr)
{
int i=st,j=dr,x=a[st];
while(i<j)
    {while(i<j && a[j]>=x)j--;
        a[i]=a[j];
    while(i<j && a[i]<=x)i++;
        a[j]=a[i];
    }
    a[i]=x;
    if(i-1>st)sortare(st,i-1);
    if(i+1<dr)sortare(i+1,dr);
}


int main()
{
  /*  fin>>n;
    for(i=1;i<=n;i++)
        fin>>a[i];
    sortare(1,n);
   for(i=1;i<=n;i++)
        fout<<a[i]<<' ';
*/
 freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    sortare(1,n);
    for(int i=1;i<=n;i++)
        printf("%d ",a[i]);
    return 0;
}