Logo NEXUS

NEXUS didattica

← Torna indietro
Informatica / Lezione Teorico-Pratica

Bubble Sort

Analisi approfondita dell'algoritmo di ordinamento a bolle, meccanismo di scambio iterativo e ottimizzazioni.

1. Cos'è il Bubble Sort?

Il Bubble Sort (ordinamento a bolle) è uno degli algoritmi di ordinamento più intuitivi e didattici. Il suo funzionamento si basa sul confronto ripetuto di coppie di elementi adiacenti all'interno di un vettore: se due elementi si trovano nell'ordine sbagliato (ad esempio il sinistro è maggiore del destro in un ordinamento crescente), l'algoritmo li scambia.

A ogni passaggio completo attraverso il vettore, l'elemento di valore massimo "risale" progressivamente verso la fine della struttura, comportandosi come una bolla d'aria in acqua (da qui il nome Bubble Sort).

2. Meccanismo di Funzionamento e Ottimizzazione

L'algoritmo impiega due cicli annidati: il ciclo esterno gestisce le passate (fino a un massimo di $N-1$ passate), mentre il ciclo interno esegue i confronti adiacenti.

// Implementazione ottimizzata del Bubble Sort in C++ #include <vector> #include <algorithm> #include <iostream> void bubbleSortOttimizzato(std::vector<int>& v) { int n = v.size(); bool swapped; for (int i = 0; i < n - 1; i++) { swapped = false; for (int j = 0; j < n - i - 1; j++) { if (v[j] > v[j + 1]) { std::swap(v[j], v[j + 1]); swapped = true; } } // Se non ci sono stati scambi, il vettore è già ordinato if (!swapped) { break; } } }

3. Analisi della Complessità

4. Simulatore Interattivo: Esecuzione Bubble Sort

Inserisci una sequenza di numeri interi separati da virgola per testare l'ordinamento a bolle e verificare i passaggi eseguiti.

bubble-sort@nexus-core:~# Bubble Sort Simulator
> Configura il vettore numerico per avviare la simulazione interattiva dell'algoritmo a bolle.