Pagini recente » Cod sursa (job #1038691) | Cod sursa (job #2554924) | Cod sursa (job #1864689) | Cod sursa (job #420421) | Cod sursa (job #2087203)
#include <stdio.h>
#include <malloc.h>
#define FIN "algsort.in"
#define FOUT "algsort.out"
void CombSortAlgorithm(int *p, int n) {
float shrinkFactor = 1.3;
int gap = n, swapped = 1,
i;
while(gap > 1 || swapped) {
if(gap > 1) gap = (gap / shrinkFactor);
swapped = 0;
for(i = 0; i + gap < n; ++i) {
if(p[i] > p[i+gap]) {
int tmp = p[ i ];
p[i] = p[i+gap];
p[i+gap] = tmp;
swapped = 1;
}
}
}
};
typedef void (*ptrFn)(int *arr, int n);
int main() {
int n, *arr;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d", &n);
int i;
arr = (int*) malloc( sizeof( arr ) );
for(i = 0; i < n; ++i) scanf("%d", &arr[i]);
ptrFn sort = CombSortAlgorithm;
sort(arr, n);
for(i = 0; i < n; ++i) printf("%d ", arr[i]);
free(arr);
return( 0 );
};