Se metto una qualsiasi sequenza lui mi ritorna la sequenza così come gliel'ho passata.
A array di float
n numero el. array
codice:void sh_sort(float *A, int n){ int current, previous, inc, j, k, x, inserted; inc = n; while (inc>1){ inc = inc / 2; for (j=1; j<=inc-1; j++){ k = j + inc; while(k<=n){ inserted = 0; x = A[k]; current = k; previous = current - inc; while(previous>=j && inserted==1){ if (x<A[previous]){ A[current] = A[previous]; current = previous; previous = previous - inc; } else { inserted = 1; } } A[current] = x; k = k + inc; } } } }

Rispondi quotando