Smoothsort: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m ortografia |
m Rimuovo articolo in inglese nascosto in commento presente dalla creazione della pagina nel 2010: se si vuole continuare la traduzione (dopo 12 anni) si può usare una versione più recente. |
||
| (9 versioni intermedie di 5 utenti non mostrate) | |||
Riga 1:
{{Algoritmo
|
|
| |struttura dati = [[Array]]
|tempo = <math>O(n\log n)</math>
|
|
|ottimale = Quando i dati sono già ordinati
|completo =
}}
In [[informatica]] lo '''Smoothsort'''<ref>[
==Analisi==
La lista da ordinare viene divisa in una stringa di [[Heap (struttura dati)|heap]], ognuna delle quali di dimensione pari ad uno dei [[numero di Leonardo|numeri di Leonardo]] L(n). Il processo di divisione è semplice: i nodi più a sinistra della lista sono divisi nell'heap più grande possibile, ed i rimanenti sono divisi allo stesso modo. Si può dimostrare che:
* qualsiasi lista di qualsiasi dimensione può essere divisa in sezioni di dimensione L(x).
Riga 30:
A questo punto l'elemento più a destra della sequenza di heap sarà l'elemento più grande in qualsiasi heap e sarà perciò nella sua posizione corretta e definitiva. Si riducono quindi le serie di heap fino ad un singolo heap di un solo elemento rimuovendo il nodo più a destra (che sta a posto) ed effettuando un riarrangiamento per ripristinare la condizione di heap. Quando siamo tornati nella condizione di un singolo heap con un solo elemento, allora la lista è ordinata.
==Note==
<references/>
==Collegamenti esterni==
* {{cita web|http://www.enterag.ch/hartwig/order/smoothsort.pdf|Commented transcription of EWD796a}}
{{ordinamento}}
{{portale|informatica}}
[[Categoria:Algoritmi di ordinamento]]
[[Categoria:Heap]]
| |||