Cod sursa(job #867321)

Utilizator iu.ciocoiuIulian iu.ciocoiu Data 29 ianuarie 2013 15:56:08
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <fstream>
#define nmax 500001
using namespace std;

void sort_rapid(int tablou[],int prim,int ultim)
   { 
	 int temp,min,max,separator_lista;
	 min=prim;
	 max=ultim;
	 separator_lista=tablou[(prim+ultim)/2];
	 do {
		  while (tablou[min]<separator_lista) min++;
		  while (tablou[max]>separator_lista) max--;
		  if (min<=max) { temp=tablou[min];
		                  tablou[min++]=tablou[max];
		                  tablou[max--]=temp;
						}
        }
     while (min<=max);
     if (prim<max) sort_rapid(tablou,prim,max);
     if (min<ultim) sort_rapid(tablou,min,ultim);
    }
	

int main()
{   int i,val[nmax],N;
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    f>>N;
    for(i=0; i<=N; ++i)
    f>>val[i];
    sort_rapid(val,0,N-1);
    for( i=0; i<=N; ++i) g<<val[i]<<" ";
    f.close();
    g.close();
 return 0;
     
}