¿Alguien puede pasar este pseudocodigo a C? (si no es mucha molestia).
Es el algoritmo de ordenamiento shell, pero todos los ejemplos que encuentro en Internet en C, son un verdadero desastre :c...
(solo necesito el algoritmo todo lo extra lo agregare yo)
Código Pseudocodigo:
Ver originalh = 1
while h < n, h = 3*h + 1
while h > 0,
h = h / 3
for k = 1:h, insertion sort a[k:h:n]
→ invariant: each h-sub-array is sorted
end
Bueno... después de unos días encontré la respuesta... la dejo por si alguien la necesita:
Código C:
Ver originalvoid shellSort(int * vet, int size) {
int i , j , value;
int gap = 1;
do {
gap = 3*gap+1;
} while(gap < size);
do {
gap /= 3;
for(i = gap; i < size; i++) {
value =vet[i];
j = i - gap;
while (j >= 0 && value < vet[j]) {
vet [j + gap] =vet[j];
j -= gap;
}
vet [j + gap] = value;
}
} while ( gap > 1);
}