Discussione:Insertion sort
Implementazioni
Dato che ogni tanto qualche nuovo arrivato volenteroso decide di aggiungere alla voce implementazioni in uno o più linguaggi di programmazione, segnalo che una decisione della comunità ha previsto che solo lo pseudocodice vada nella voce, mentre le implementazioni sono inserite nel progetto wikibooks (c'è il link alla fine della voce). Grazie. --Giuseppe (msg) 11:15, 13 lug 2009 (CEST)
Revisione voce
Ho rivisto un po' la voce. Sostanzialmente, ho
- aggiunto qualche dettaglio sulla complessità da en:wiki
- aggiunto l'esempio di funzionamento
- modificato la spiegazione e toccato qualcosa nell'introduzione integrando con una parte tratta da en:wiki
- formattato lo pseudocodice (keywords in grassetto)
Pseudocodice scorretto
Mi pare che lo pseudocodice contenga una deficienza. Non mi sono permesso di modificarlo non essendo un programmatore esperto e dunque incerto, tuttavia confido nella revisione da parte di utenti più esperti. In particolare mi pare che la mancanza sia la seguente: non solo A [j] deve assumere il valore di A[j+1], nel while, ma pure il viceversa. I due valori devono scambiarsi, sennò "perdiamo" un valore.
Io, in DevC++ ho così implementato la funzione, e funziona (PONGO TRA ASTERISCHI QUELLO CHE LO PSEUDOCODICE SU WIKI MI PARE NON DIRE):
void InsertSort(int x,int P[])
{ for(int i=1;i<=x;i++)
{ int v=P[i]; int j=i-1; while((j>=0)&&(P[j]>v)) { ****int p=P[j];**** P[j]=P[j+1]; ****P[j+1]=p;**** j=j-1; v=P[j+1]; }
}
}