Pagini recente » Cod sursa (job #2445435) | Cod sursa (job #433137) | Cod sursa (job #1440616) | Cod sursa (job #2663627) | Cod sursa (job #2513513)
#include <stdio.h>
#include <malloc.h>
#define FIN "algsort.in"
#define FOUT "algsort.out"
void c_s(int *p, int n) {
float shrinkFactor = 1.3;
int swapped = 0,
gap = n,
i;
while(gap > 1 || swapped) {
swapped = 0;
if(gap > 1) gap = gap / shrinkFactor;
for(i = 0; (i + gap) < n; ++i) {
if(p[i] > p[i+gap]) {
int holder = p[i];
p[i] = p[i+gap];
p[i+gap] = holder;
swapped = 1;
}
}
}
}
int main() {
int *p, n, i;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d", &n);
p = (int*)malloc(sizeof(int) * n);
for(i = 0; i < n; ++i) scanf("%d", p + i);
c_s(p, n);
for(i = 0; i < n; ++i) printf("%d ", *(p + i));
free(p);
return(0);
}