• Non ci sono risultati.

Insertion Sort

N/A
N/A
Protected

Academic year: 2021

Condividi "Insertion Sort"

Copied!
1
0
0

Testo completo

(1)

Insertion Sort

1

Insertion sort `e un algoritmo relativamente semplice per ordinare un array. Simula il modo in cui un essere umano, spesso, ordina un mazzo di carte. L’idea dell’algoritmo `e la seguente.

Consideriamo l’array a di dimensione size, alla i-esima iterazione:

• l’array a `e partizionato in due sottoarray: uno (dall’indice 0 all’indice i-1) gi`a ordinato e uno (dall’indice i-1 all’indice size - 1) ancora da ordinare;

• l’elemento a[i] viene rimosso dal sottoarray non ordinato e inserito nella posizione corretta del sottoarray ordinato. In tal modo, il sottoarray ordinato viene esteso di un elemento.

• Per inserire a[i] nella giusta posizione nel sottoarray ordinato, l’algoritmo utilizza un indice j:

– inizialmente j viene posto a i;

– vengono confrontati gli elementi a[j-1] e a[j];

– se a[j] `e minore di a[j-1], i due elementi vengono scambiati di posto e l’indice j viene decrementato di 1; altrimenti l’iterazione finisce.

Esempio. Quella che segue `e un esempio di traccia di esecuzione dell’algoritmo.

[ 8, 5, 2, 34, 25, 3, 11 ] i = 0 [ 8, 5, 2, 34, 25, 3, 11 ] i = 1 [ 5, 8, 2, 34, 25, 3, 11 ]

[ 5, 8, 2, 34, 25, 3, 11 ] i = 2 [ 5, 2, 8, 34, 25, 3, 11 ]

[ 2, 5, 8, 34, 25, 3, 11 ]

[ 2, 5, 8, 34, 25, 3, 11 ] i = 3 [ 2, 5, 8, 34, 25, 3, 11 ] i = 4 [ 2, 5, 8, 25, 34, 3, 11 ]

[ 2, 5, 8, 25, 34, 3, 11 ] i = 5 [ 2, 5, 8, 25, 3, 34, 11 ]

[ 2, 5, 8, 3, 25, 34, 11 ] [ 2, 5, 3, 8, 25, 34, 11 ] [ 2, 3, 5, 8, 25, 34, 11 ]

[ 2, 3, 5, 8, 25, 34, 11 ] i = 6 [ 2, 3, 5, 8, 25, 11, 34 ]

[ 2, 3, 5, 8, 11, 25, 34 ]

1Appunti dal corso di Programmazione per Bioinformatica A.A. 2013/14, dott. Damiano Macedonio.

1

Riferimenti

Documenti correlati

Purtwppo it can " s favor e vole " n' make tale nel Suddeth Ceto medio : Hassani one implicit E che I lousy via scelto casual meat the i possible. RANDOMIZATION IDEA PIE

In particolare, alcuni elementi attraversano l'array velocemente (come bollicine che emergono dal fondo del bicchiere), altri più lentamente (a differenza di quanto avviene nel

imbattendosi  in  prima  istanza  nella  più  immediata  e  superficiale  delle  fonti 

• promuovere e mantenere la cultura dell’accoglienza ospitale attraverso il Servizio di Accoglienza già avviato dal Centro Oncologico Fiorentino all’interno dell’ospedale.

Anche nel campo della salute, parte integrante dell’esistenza di ciascuno e del bene comune, è importante instaurare una vera giustizia distributiva che garantisca a tutti, sulla

1 Per ognuna delle n − 1 iterazione del ciclo esterno, può essere eseguito al massimo un confronto con esito false, cioè non seguito da uno scambio, dato che esso causa la

 A swap of "far away" elements may result in a duplicate key passing over to the left of a. preceding instance of the

 Focusing of the task of sorting, the heap sort ordering algorithm, is implemented through 3 functions.  heapify