Estratto del documento

Algoritmo di ordinamento per inserimento

L’algoritmo di ordinamento per inserimento inizia osservando che il sottoarray di lunghezza unitaria costituito dalla prima cella dell’array è ordinato (essendo di lunghezza unitaria). Estende verso destra la parte ordinata, includendo nel sottoarray ordinato il primo elemento alla sua destra. Per farlo, il nuovo elemento viene spostato verso sinistra finché non si trova nella sua posizione corretta, spostando verso destra gli elementi intermedi.

Il codice dell’algoritmo è il seguente:

public class ArrayAlgs {
    ...
    public static void insertionSort(int[] v, int vSize) {
        // Il ciclo inizia da 1 perché il primo elemento non richiede attenzione
        for (int i = 1; i < vSize; i++) {
            int temp = v[i]; // nuovo elemento da inserire
            // j va definita fuori dal ciclo perché il suo valore finale viene usato in seguito
            int j;
            // Sposta di uno verso destra tutti gli elementi a sinistra di temp e > di temp partendo da destra
            for (j = i; j > 0 && temp < v[j-1]; j--) 
                v[j] = v[j-1];
            v[j] = temp; // inserisci temp
        }
    }
    ...
}
Anteprima
Vedrai una selezione di 1 pagina su 1
Informatica I - ordinamento per inserimento InsertionSort Pag. 1
1 su 1
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher enricopava di informazioni apprese con la frequenza delle lezioni di Informatica 1 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Padova o del prof Avanzini Federico.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community