Best-case Zeitkomplexität für die Auswahl zu Sortieren
Warum ist das best-case Zeitkomplexität für selection sort O(n^2), wenn es O(n) für die insertion sort und bubble-sort? Ihre Durchschnittliche Zeiten gleich sind. Ich verstehe nicht, warum die best-case die Zeiten sind anders. Würde schätzen etwas Hilfe.
- Mögliche Duplikate von Insertion Sort vs. Auswahl Sortieren
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für die Auswahl zu Sortieren, die Sie haben auf der Suche nach minimum und legen Sie es auf den ersten Platz in der ersten iteration. In der zweiten iteration, Sie Suche das minimum in den nicht sortierten Teil des Arrays und legen Sie es auf den zweiten Platz und so weiter...
Du nur wissen, welches element das minimum nach Durchlaufen, bis das Ende der nicht sortierte Teil. Auch wenn das array sortiert ist(!) Sie haben zu Durchlaufen, bis das Ende. Dann wissen Sie sicher, dass Sie gefunden, das minimum um es an der richtigen Stelle (am Ende der bereits sortierten Teil)
Also ersten iteration dauert n Schritte zu finden, die minimale.
Die zweite iteration dauert n-1-Schritte zu finden, die minimale in der nicht-sortierten Teil
...
Die Letzte iteration dauert 1 Schritt zu finden, die minimale in der nicht-sortierten Teil.
Nach diesen Schritten, Sie haben ein sortiertes array (selbst wenn Sie sortiert vor). Auswahl Sortieren nicht überprüfen, ob das array bereits sortiert ist durch eine linear-time algorithm. Auswahl Sortieren immer wieder sucht das minimum. Das ist die Art und Weise, wie die Auswahl Sortieren funktioniert.
Wenn Sie wiederholt suchen das minimum das es braucht n+(n-1)+...+1, so bekommt man (n(n+1))/2 = (n2+n)/2 ist O(n2)