Merge sort: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: specificità dei wikilink e modifiche minori |
|||
Riga 12:
}}
Il '''merge sort''' è un [[algoritmo
== Descrizione dell'algoritmo ==
Riga 22:
=== Esempio di funzionamento ===
[[
Supponendo di dover ordinare la sequenza [10 3 15 2 1 4 9 0], l'algoritmo procede ricorsivamente dividendola in metà successive, fino ad arrivare alle coppie
Riga 33:
Al passo successivo, si fondono le coppie di array di due elementi:
[2 3 10 15] [0 1
Infine, fondendo le due sequenze di quattro elementi, si ottiene la sequenza ordinata:
Riga 57:
Una possibile implementazione della funzione merge (unione di due sottosequenze ordinate) è la seguente:
'''function''' merge (a[], left, center, right)
i ← left
j ← center + 1
k ← left
'''while''' i ≤ center '''and''' j ≤ right '''do'''
'''if''' a[i] ≤ a[j]
Riga 69:
'''else'''
b[k] ← a[j]
j ← j + 1
k ← k + 1
'''end while'''
'''while''' i ≤ center '''do'''
b[k] ← a[i]
Riga 78:
k ← k + 1
'''end while'''
'''while''' j ≤ right '''do'''
b[k] ← a[j]
j ← j + 1
k ← k + 1
'''end while'''
'''for''' k ← left '''to''' right '''do'''
a[k] ← b[k]
| |||