Bubble sort: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
uan -> una |
Etichette: Modifica da mobile Modifica da web per mobile |
||
Riga 62:
=== Varianti e ottimizzazioni ===
Esistono numerose varianti del
Un insieme di ottimizzazioni si basa sull'osservazione che se, in una data iterazione, non avviene più alcuno scambio, l'array è necessariamente ordinato e l'algoritmo può essere terminato anticipatamente (ovvero senza giungere alla N-1ª iterazione). Una tecnica di ottimizzazione può dunque essere applicata usando una variabile [[logica booleana|booleana]] (o equivalente) usata come "''[[flag]]''" che indica se nell'iterazione corrente si è eseguito almeno uno scambio. La variabile viene reimpostata a ''false'' all'inizio di ogni iterazione, e impostata a ''true'' solo nel caso in cui si proceda a uno scambio. Se al termine di una iterazione completa il valore della variabile ''flag'' è ''false'', l'array è ordinato e l'intero algoritmo viene terminato. Questa tecnica produce una riduzione del tempo ''medio'' di esecuzione dell'algoritmo, pur con un certo [[overhead]] costante (assegnamento e confronto della variabile ''flag'').
|