Cod sursa(job #649975)

Utilizator I.AlexandruIlie Alexandru I.Alexandru Data 17 decembrie 2011 00:49:33
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream>
#define N 500000
using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");
int i, n, v[N];

void swap(int &a, int &b)
{int aux;
aux=a;
a=b;
b=aux;
}

void quicksort(int v[], int start, int end) 
{if(start==end)
   return;
int i=start;
int j=end;
int pivot=v[i+rand()%(j-i)];

while(i<=j)
     {while(v[i]<pivot)
           i++;
      while(v[j]>pivot)
           j--;
      if(i<=j)
        {swap(v[i], v[j]);
         i++;
         j--;
        }
     }
     
if(start<j)
  quicksort(v, start, j);
if(i<end)
  quicksort(v, i, end);
}

int main()
{f>>n;

for(i=0; i<n; i++)
   f>>v[i];
	
srand(time(NULL));
quicksort(v, 0, n-1);
				
for(i=0; i<n; i++)
   g<<v[i]<<" ";
   
f.close();
g.close();
}