Insertion-sort besser als Bubble-sort?
Ich bin dabei meine revision für die Prüfung.
Würde gerne wissen, unter welcher Bedingung wird Insertion-sort besser als bubble-sort gegeben gleichen durchschnittlichen Fall Komplexität von O(N^2).
Ich fand einige ähnliche Beiträge, aber ich kann Sie nicht verstehen.
Würde jemand Verstand erklärt es in einer einfachen Art und Weise?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Vorteil, bubblesort ist in der Geschwindigkeit der Erkennung einer bereits sortierten Liste:
Jedoch auch in diesem Fall insertion sort bekam bessere/gleiche Leistung.
Bubblesort ist, mehr oder weniger, nur gut für das Verständnis und/oder das unterrichten der Mechanismus von sortalgorithm, aber nicht finden, eine einwandfreie Nutzung in der Programmierung in diesen Tagen, weil seine Komplexität
bedeutet, dass seine Leistungsfähigkeit sinkt dramatisch auf Listen von mehr als einer kleinen Zahl von Elementen.
Folgende Dinge kamen mir in den Sinn:
Bubble-sort braucht immer einen pass mehr über array, um festzustellen, ob es sortiert ist. Auf der anderen Seite, insertion sort nicht benötigen diesen-wenn die Letzte eingefügte element, Algorithmus garantiert, dass der array sortiert ist.
Bubble-sort funktioniert
n
Vergleiche auf jedem pass. Insertion sort weniger alsn
Vergleiche: sobald der Algorithmus ermittelt die position, wo einfügen, Aktuelles element", es Stoppt Vergleiche an und nimmt das nächste element.Schließlich, Zitat aus wikipedia Artikel:
Finden Sie den link zur original-Studie gibt es.
Ich denke, die Antwort, die Sie suchen,hier:
und
Könnten Sie links auf die entsprechenden Artikel, die Sie nicht verstehen? Ich bin mir nicht sicher, welche Aspekte Sie vielleicht ansprechen. Andere als das, es ist ein theoretischer Unterschied, das könnte sein, dass der bubble-sort ist besser geeignet für die Sammlungen vertreten, wie arrays (als es ist für diejenigen vertreten, die als verknüpfte Listen), während insertion sort ist geeignet für verknüpfte Listen.
Die Argumentation wäre, dass der bubble-sort-immer vertauscht zwei Elemente zu einer Zeit, die trivial auf beide, array und verkettete Liste (effizienter auf arrays), während insertion sort Einsätze an einem Ort, in einer bestimmten Liste, das ist trivial für verknüpfte Listen, sondern umfasst das verschieben aller nachfolgender Elemente in einem array auf der rechten Seite.
Dass gesagt wird, nehmen Sie es mit einem Körnchen Salz. Zuerst von allen, Sortieren von arrays ist, in der Praxis fast immer schneller als das Sortieren von verketteten Listen. Einfach aufgrund der Tatsache, dass das Scannen die Liste einmal hat ein enormen Unterschied schon. Davon abgesehen, bewegen n Elemente eines Arrays auf der rechten Seite, ist viel schneller als die Ausführung n (oder auch n/2) swaps. Dies ist der Grund, warum andere Antworten richtig behaupten, insertion sort, überlegen zu sein, im Allgemeinen, und warum ich mich über die Artikel, die Sie Lesen, weil ich nicht denke, dass eine einfache Art zu sagen, dies ist besser, in den Fällen Ein, und das ist besser in den Fällen B.
Im schlimmsten Fall beide sind in der Regel bei O(n^2)
In der best-case-Szenario, D. H., wenn das array bereits sortiert, Bubble sort durchführen können O(n).