void Shellsort(int *array, int nr){
int i, j, k, dist, distArray[3], temp;
*(distArray)=3; *(distArray+1)=2; *(distArray+2)=1;
for(k=0; k < 3; k++){
dist = *(distArray+k);
for(i = dist; i < nr; i++){
temp = *(array+i);
for(j = i - dist; (temp < *(array+j)) && (j >= 0); j = j - dist)
*(array+(j+dist)) = *(array+j);
*(array+(j+dist)) = temp;
}
}
for(i = 0; i < nr; i++)
printf("%d ", *(array+i));
}
array è il vettore da ordinare, nr il numero di elementi

Rispondi quotando