Ist der Bucket-Sort-Algorithmus vorhanden?
Ist der Bucket-Sort-Algorithmus vorhanden?

Video: Ist der Bucket-Sort-Algorithmus vorhanden?

Video: Ist der Bucket-Sort-Algorithmus vorhanden?
Video: Bucket Sort 2024, Kann
Anonim

Nein, es ist kein In- Platz Sortierung Algorithmus . Die ganze Idee ist dieser Input sortiert selbst, wie sie in die Eimer . Im schlimmsten Fall (sequentielle Werte, aber keine Wiederholung) ist der zusätzlich benötigte Speicherplatz so groß wie das ursprüngliche Array.

Welche Sortieralgorithmen gibt es auf diese Weise?

Als weiteres Beispiel ordnen viele Sortieralgorithmen Arrays direkt in eine sortierte Reihenfolge um, einschließlich: Blase sortieren , Kammsortierung, Auswahlsortierung, Sortieren durch Einfügen , Heapsort und Shellsort. Diese Algorithmen benötigen nur wenige Zeiger, daher beträgt ihre Raumkomplexität O(log n). Quicksort arbeitet direkt mit den zu sortierenden Daten.

Anschließend stellt sich die Frage, wie funktioniert ein Bucket-Sort-Algorithmus? Eimersortierung , oder bin sortieren , ist ein Sortieralgorithmus das funktioniert durch Aufteilen der Elemente eines Arrays in eine Anzahl von Eimer . Jeder Eimer ist dann sortiert einzeln, entweder mit einem anderen Sortieralgorithmus , oder durch rekursives Anwenden der Bucket-Sortierungsalgorithmus . Richten Sie ein Array von anfänglich leeren " Eimer ".

Wie implementieren Sie dementsprechend einen Bucket-Sort-Algorithmus?

  1. Angenommen, das Eingabearray lautet: Erstellen Sie ein Array der Größe 10.
  2. Fügen Sie Elemente aus dem Array in die Buckets ein. Die Elemente werden entsprechend der Reichweite des Eimers eingefügt.
  3. Die Elemente jedes Buckets werden unter Verwendung eines der stabilen Sortieralgorithmen sortiert.
  4. Die Elemente aus jedem Eimer werden gesammelt.

Wo wird Bucket-Sort verwendet?

Eimersortierung ist hauptsächlich nützlich, wenn die Eingabe gleichmäßig über einen Bereich verteilt wird. Betrachten Sie beispielsweise das folgende Problem. Sortieren ein großer Satz von Gleitkommazahlen, die im Bereich von 0,0 bis 1,0 liegen und gleichmäßig über den Bereich verteilt sind.

Empfohlen: