Komplexität grundlegender Operationen von Such- und Sortieralgorithmen [geschlossen]


8

Wiki hat ein gutes Spickzettel, aber es beinhaltet kein Nein. von Vergleichen oder Swaps. (obwohl die Anzahl der Swaps normalerweise über ihre Komplexität entscheidet). Also habe ich folgendes erstellt. Ist die folgende Information korrekt? Bitte lassen Sie mich wissen, wenn ein Fehler vorliegt, ich werde ihn korrigieren.

Sortieren durch Einfügen:

  • Durchschnittlicher Fall / schlimmster Fall: ; tritt auf, wenn die Eingabe bereits in absteigender Reihenfolge sortiert istΘ(n2)
  • Bester Fall: ; wenn die Eingabe bereits sortiert istΘ(n)
  • Anzahl der Vergleiche: im schlechtesten Fall & Θ ( n ) im besten FallΘ(n2)Θ(n)
  • Θ(n2)0

Auswahl Sortieren:

  • Θ(n2)
  • Θ(n2)
  • Θ(n)0

Zusammenführen, sortieren :

  • Θ(nlgn)
  • Θ(n+m)Θ(n)n<m
  • Anzahl der Swaps: Keine Swaps! [erfordert aber zusätzlichen Speicher, keine In-Place-Sortierung]

Schnelle Sorte:

  • Θ(n2)
  • Θ(nlogn)
  • Θ(n2)Θ(nlogn)
  • Θ(n2)0

Blasensortierung:

  • Θ(n2)
  • Θ(n)
  • Θ(n2)
  • Θ(n2)0

Lineare Suche:

  • Θ(n)
  • Θ(1)
  • Θ(n)1

Binäre Suche:

  • Θ(logn)
  • Θ(1)
  • Θ(logn)1

  1. Ich habe nur grundlegende Such- und Sortieralgorithmen berücksichtigt.
  2. Es wird oben angenommen, dass Sortieralgorithmen eine Ausgabe in aufsteigender Reihenfolge erzeugen
  3. Quellen: Das großartige CLRS und dieses Wiki

Um die Vorzüge dieser (Art) Frage zu diskutieren, nehmen Sie bitte am Chat teil .
Raphael

1
Dies ist keine Frage, also nicht zum Thema.
David Richerby

Ich habe auch dafür gestimmt, zu schließen. Dies ist vielleicht auch schwierig zu retten, weil die "Frage" ziemlich weit gefasst ist (was sind die grundlegenden Such- und Sortieralgorithmen genau?)
Juho

Antworten:


-2

Θ(n2)n

n2


1
Θ(n2)O(nlogn)n2

Vielen Dank für die Bearbeitung meines Kommentars, ich bin neu bei SE. Nun, ich hätte das klarer sagen sollen. Ich habe gerade meinen Kommentar oben bearbeitet. Ich habe versucht zu sagen, dass Best-Case-Vergleiche bei Bubble-Sortierung nicht 0 sein können. Wenn das Array sortiert ist und Sie das Flag verwenden, um den Austausch im vorherigen Durchgang anzuzeigen. Wenn im vorherigen Durchgang kein Swap vorhanden ist, ist das Array bereits sortiert, sodass für den ersten Durchgang keine weiteren Schritte erforderlich sind. Wir führen n Vergleiche durch. Für die schnelle Sortierung spreche ich von Vergleichen und Swaps, nicht von zeitlicher Komplexität. Im schlimmsten Fall werden alle Elemente sortiert, sodass keine Swaps erforderlich sind.
Nikhil Mahajan

O(nlogn)O(nlogn)O()O(nlogn)n2O(nlogn) . O(nlogn)
David Richerby

Sie sind richtig, ich habe meine Antwort für die schnelle Sortierung bearbeitet.
Nikhil Mahajan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.