Sto cercando di capire alcuni algoritmi di ordinamento, ma faccio fatica a vedere la differenza nell'algoritmo di ordinamento a bolle e di ordinamento per inserzione.
So che entrambi sono O (n 2 ), ma mi sembra che l'ordinamento a bolle faccia solo bolle il valore massimo dell'array verso l'alto per ogni passaggio, mentre l'ordinamento per inserzione affonda il valore più basso verso il basso ogni passaggio. Non stanno facendo la stessa identica cosa ma in direzioni diverse?
Per l'ordinamento per inserzione, il numero di confronti / scambi potenziali inizia da zero e aumenta ogni volta (cioè 0, 1, 2, 3, 4, ..., n) ma per l'ordinamento a bolle si verifica lo stesso comportamento, ma alla fine di l'ordinamento (cioè n, n-1, n-2, ... 0) perché il bubble sort non ha più bisogno di confrontarsi con gli ultimi elementi mentre vengono ordinati.
Nonostante tutto ciò, sembra un consenso sul fatto che l'ordinamento per inserzione sia migliore in generale. Qualcuno può dirmi perché?
Modifica: sono principalmente interessato alle differenze nel modo in cui funzionano gli algoritmi, non tanto alla loro efficienza o complessità asintotica.