Pagini recente » Cod sursa (job #661101) | Cod sursa (job #768603) | Cod sursa (job #2905793) | Cod sursa (job #3235618) | Cod sursa (job #721905)
Cod sursa(job #721905)
#include<fstream>
#include<time.h>
#include<stdlib.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[500001],n;
int poz(int ls , int ld)
{
int pz = ls + rand()%(ld-ls+1);
int aux = a[pz];
a[pz]=a[ls];
a[ls]=aux;
int i=ls;
int j=ld;
int ii=0,jj=-1;
while(i!=j)
{
if(a[i]>a[j]){
int aux =a[i];
a[i]=a[j];
a[j]=aux;
aux=ii;
ii=-jj;
jj=-aux;
}
i+=ii;
j+=jj;
}
return i;
}
void sort(int ls,int ld, int a[]){
if(ls<ld){
int p=poz(ls,ld);
sort(ls,p-1,a);
sort(p+1,ld,a);
}
}
int main(){
srand(time(0));
int i;
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
sort(1 , n , a);
for(i=1;i<=n;i++)
g<<a[i]<<" ";
return 0;
}