Introduzione

Il problema dell' ordinamento di un insieme, é un problema molto ricorrente in campo informatico che oltre ad avere un importanza fondamentale in ambito applicativo, rappresenta anche un ottimo strumento didattico.

Un algoritmo di ordinamento é appunto un algoritmo capace di ordinare un insieme seguendo una certa relazione d' ordine. Ad esempio si possono trovare facilmente tanti casi di relazioni d’ordine, che spesso esprimiamo con parole come prima/dopo, precede/segue, superiore/inferiore, a monte/a valle, ecc.

Di algoritmi di ordinamento ne esitono diversi e di diversi tipi. In questa guida affronteremo gli algoritmi che in gran parte operano esclusivamente sulla base di scambi e confronti, facendo qualche accenno anche alla complessitá di ciascuno. Analizzeremo algorimti di semplice realizzazione, a scapito della loro complessita computazionale, cioè scarsa efficienza (Bubble Sort, Insertion Sort, Selection Sort), fino ad arrivare a quelli strutturalmente più complessi ma molto efficienti, che fanno uso dell tecnica Divide et Impera, con il meccanismo della ricorsione (Merge Sort, Quick Sort).

Tutti gli algoritmi si baseranno su vettori (o array) di numeri interi. Inoltre come supporto una simpatica applet java mostrerá graficamente l'evolversi dell' ordinamento di un array di interi, che ci aiuta a chiarire meglio il meccanismo di ciascun algoritmo.
Indice » 1 2 3 4 5 6