Cod sursa(job #1021292)

Utilizator 3nTRoPYiorga dan 3nTRoPY Data 3 noiembrie 2013 16:48:26
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <time.h>

using namespace std;

int v[500000];
int n;

int pivot(int i, int j)
{
 		srand(time(NULL));
 		int p= i+rand()%(j-i+1);
    return p;
}

void qs(int s, int d)
{
 		 if(s>d)
 		   return;
     int p=pivot(s,d);
     int vp=v[p];
     int i=s, j=d, t;
     while(i<=j)
     {
					while(v[i]<vp)
					   i++;
		      while(v[j]>vp)
		         j--;
          if(i<=j)
          {
			 				t=v[i];
			 				v[i]=v[j];
			 				v[j]=t;
			 				i++;
			 				j--;
					}
     }
     qs(s,j);
		 qs(i,d); 
}

int main(int argc, char *argv[])
{
 		ifstream fin("algsort.in");
		fin>>n;
		int i;
		for(i=0;i<n;i++)
		   fin>>v[i];
		qs(0, n-1);
		ofstream fout("algsort.out");
		for(i=0;i<n;i++)
		{
		   fout<<v[i]<<" ";
	  }
    return EXIT_SUCCESS;
}