Pagini recente » Cod sursa (job #2407816) | Cod sursa (job #2850252) | Cod sursa (job #63759) | Cod sursa (job #747779) | Cod sursa (job #330604)
Cod sursa(job #330604)
#include<stdio.h>
#include<cstdlib>
#include<time.h>
int tablou[500000];
void quickSort(int st,int dr)
{
int temp,min,max,mijl;
min = st;
max = dr;
mijl = (st + dr) / 2;
temp = rand() % (dr - st + 1) + st;
tablou[mijl] ^= tablou[temp] ^= tablou[mijl] ^= tablou[temp];
do
{
while(tablou[min] < mijl) min++;
while(tablou[max] > mijl) max--;
if(min <= max)
{
temp = tablou[min];
tablou[min++] = tablou[max];
tablou[max--] = temp;
}
}while(min <= max);
if(st < max)
quickSort(st,max);
if(min < dr)
quickSort(min,dr);
}
int main(void)
{
int n;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(int i = 0; i < n; i++)
scanf("%d",&tablou[i]);
quickSort(0,n-1);
for(int i = 0; i < n; i++)
printf("%d ",tablou[i]);
fclose(stdin); fclose(stdout);
return 0;
}