Ich versuche, ein paar Sortieralgorithmen zu verstehen, aber ich habe Mühe, den Unterschied zwischen dem Blasensortierungs- und dem Einfügesortieralgorithmus zu erkennen.
Ich weiß, dass beide O (n 2 ) sind, aber es scheint mir, dass die Blasensortierung nur den Maximalwert des Arrays für jeden Durchgang nach oben sprudelt, während die Einfügesortierung bei jedem Durchgang nur den niedrigsten Wert nach unten senkt. Tun sie nicht genau dasselbe, aber in verschiedene Richtungen?
Bei der Einfügungssortierung beginnt die Anzahl der Vergleiche / potenziellen Swaps bei Null und steigt jedes Mal an (dh 0, 1, 2, 3, 4, ..., n). Bei der Blasensortierung tritt jedoch dasselbe Verhalten auf, jedoch am Ende von die Sortierung (dh n, n-1, n-2, ... 0), da die Blasensortierung beim Sortieren nicht mehr mit den letzten Elementen verglichen werden muss.
Trotz alledem scheint es ein Konsens zu sein, dass die Einfügungssortierung im Allgemeinen besser ist. Kann mir jemand sagen warum?
Bearbeiten: Ich interessiere mich hauptsächlich für die Unterschiede in der Funktionsweise der Algorithmen, nicht so sehr für ihre Effizienz oder asymptotische Komplexität.