Cod sursa(job #1017246)

Utilizator buzu.tudor67Tudor Buzu buzu.tudor67 Data 27 octombrie 2013 16:15:53
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<fstream>

using namespace std;
ifstream fi("algsort.in");
ofstream fo("algsort.out");

int a[500005];
int i,n;

void swap2(int &a,int &b){
     int r;
     r=a; a=b; b=r;
}

void quick(int left,int right){
     int i,j,mid;
     
     mid=a[(left+right)/2];
     i=left; j=right;
     
     while (i<j) {
                  while (a[i]<mid) i++;
                  while (a[j]>mid) j--; 
                  if (i<=j) {
                             swap2(a[i],a[j]);
                             i++;
                             j--;
                            }
                 }
     
     if (left<j) quick(left,j);
     if (i<right) quick(i,right);
}

int main(void){
    fi>>n;
    for(i=1;i<=n;i++) fi>>a[i];
    
    quick(1,n);
    
    for(i=1;i<=n;i++) fo<<a[i]<<" "; 
    fi.close();
    fo.close();
    return 0;
}