Pagini recente » Cod sursa (job #8995) | Cod sursa (job #277830) | Cod sursa (job #3151296) | Cod sursa (job #1521535) | Cod sursa (job #687653)
Cod sursa(job #687653)
// ShellSort
#include <stdio.h>
FILE *f=fopen("algsort.in", "r"), *g=fopen("algsort.out", "w");
long a[500001], n;
void citeste(void)
{
fscanf(f, "%ld", &n);
for(long i=0;i<n;i++)
fscanf(f, "%ld", &a[i]);
fclose(f);
}
void shellsort () {
long h, i, j, k;
for (h = n; h /= 2;) {
for (i = h; i < n; i++) {
k = a[i];
for (j = i; j >= h && k < a[j - h]; j -= h) {
a[j] = a[j - h];
}
a[j] = k;
}
}
}
void tipareste(void)
{
for(long i=0;i<n;i++)
fprintf(g, "%ld ", a[i]);
fclose(g);
}
int main()
{
citeste();
shellsort();
tipareste();
return 0;
}