Potresti fornire link agli articoli correlati che non capisci? Non sono sicuro di quali aspetti potrebbero trattarsi. Oltre a ciò, esiste una differenza teorica che potrebbe essere che l'ordinamento di bolle è più adatto per le raccolte rappresentate come matrici (rispetto a quelle rappresentate come liste concatenate), mentre l'ordinamento di inserimento è adatto per gli elenchi collegati.
Il ragionamento sarebbe che l'ordinamento di bolle scambia sempre due elementi alla volta che è banale su entrambi, elenco di matrice e collegato (più efficiente sugli array), mentre inserisce inserimenti di ordinamento in un posto in un dato elenco che è banale per elenchi collegati ma comporta lo spostamento di tutti gli elementi successivi in una matrice a destra.
Detto questo, prendilo con un granello di sale. Innanzitutto, l'ordinamento degli array è, in pratica, quasi sempre più rapido rispetto all'ordinamento delle liste collegate. Semplicemente perché la scansione dell'elenco una volta ha già un'enorme differenza. A parte questo, lo spostamento di n elementi di un array a destra, è molto più veloce rispetto a eseguire n (o anche n/2) swap. Questo è il motivo per cui altre risposte affermano correttamente che l'insertion sort è superiore in generale e perché mi meraviglio davvero degli articoli che leggi, perché non riesco a pensare a un modo semplice per dire che è meglio nei casi A, e che è meglio nei casi B.
fonte
2012-05-03 10:17:55
quindi ad esempio una lista prevalentemente ordinata: ad es. [2,3,4,5,1] tipo di bolla necessita di 4 swap e 4 confronti L'ordinamento per inserzione richiede 4 swap e 4 confronti. quindi qual è la differenza? – Jonathan
in quell'esempio particolare non c'è differenza :) – MarcoS