Nello scorso articolo abbiamo trattato l’ algoritmo per copiare un vettore. In questo articolo analizzeremo l’algoritmo che permette di ordinare un vettore formato da 100 numeri interi denominato bubble sort. Ti ricordo che il linguaggio utilizzato è il C.

N.B.  Per semplicità verranno utilizzati solo numeri interi.

bubble sort

Algoritmo bubble sort

L’algoritmo del Bubble sort o ordinamento a bolla è un semplice algoritmo di ordinamento di una lista di dati. Ogni coppia di elementi vicini viene comparata e invertita di posizione se sono nell’ordine sbagliato. L’algoritmo continua nuovamente a ri-eseguire questi passaggi per tutta la lista finché non vengono più eseguiti scambi. Questa situazione indica che la lista è ordinata.

In questo caso verrà ordinato un vettore composto da 100 numeri interi compresi tra 1 e 1000 e generati casualmente tramite la funzione rand().

 

Le variabili di cui avremo bisogno saranno:

  • vettore[100]: Conterrà i numeri generati casualmente in ordine sparso
  • Scambio: questa variabile conterrà il valore da scambiare
  • K: servirà per scandire il vettore
  • J: servirà per indicare il numero di cicli da effettuare per scandire il vettore
  • I: servirà per la generazione dei numeri casuali

Strategia risolutiva

  1. Riempimento del vettore con numeri generati casualmente;
  2. Ordinamento:
    1. Confrontare il numero presente nella cella attuale e scambiarlo se è maggiore del suo successivo;
    2. Decrementare la variabile J, in quanto nel successivo passaggio il vettore conterrà, alla fine, valori man mano ordinati in maniera decrescente.
  3. Stampa del vettore ordinato.

Sorting bubblesort anim.gif

Flow chart

 

bubble sort

Implementazione

 

Per questo articolo è tutto, nel prossimo articolo verrà illustrato l’algoritmo del selection sort.

Stai cercando altre guide? Allora dai uno sguardo alla nostra raccolta dedicata agli Algoritmi.

Alla prossima!