Pagini recente » Cod sursa (job #2534197) | Cod sursa (job #882947) | Cod sursa (job #1071790) | Cod sursa (job #2364219) | Cod sursa (job #823031)
Cod sursa(job #823031)
#include <stdio.h>
void haste(int *v, int stg, int dpt)
{
int i=stg, j=dpt, m=v[(i+j)/2];
while (i <= j)
{
while (v[i] < m) i++;
while (v[j] > m) j--;
if (i <= j)
{
v[i] ^= v[j];
v[j] ^= v[i];
v[i] ^= v[j];
}
}
if (i < dpt) haste(v, i, dpt);
if (j > stg) haste(v, stg, j);
}
int main()
{
int n, *v, i;
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
scanf("%d", &n);
v = (int*)malloc(4*n);
for (i=0;i<n;i++)
scanf("%d", &v[i]);
haste(v, 0, n-1);
for (i=0;i<n;i++)
printf("%d ", v[i]);
return 0;
}