2012-06-13 6 views
5

Ich riskiere diese Frage zu schließen, bevor ich eine Antwort bekomme, aber ich möchte wirklich die Antwort wissen. Also hier geht es.Echte Welt Beispiele zu entscheiden, welche Sortieralgorithmus am besten funktioniert


Ich versuche zur Zeit Algorithmen, zu lernen, und ich fange an, es als solches zu verstehen, sondern sie betreffen nicht.

Ich verstehe Zeitkomplexität und Raumkomplexität. Ich verstehe auch einige Sortierung auf dem Pseudo-Code basierte Algorithmen

Sortieralgorithmen wie

  1. Bubble Sort
  2. Insertion Sort
  3. Auswahl sortieren
  4. Quicksort
  5. Mergesort
  6. Heapsort (Etwas was)

Ich kenne auch Best Case und Worst Case Szenarien (Durchschnittlicher Fall nicht so viel).


Einige Online-relevanten Informationen und Referenzen

  • Nice place die grafisch alle oben zeigt.
  • This gab mir ein gutes Verständnis.

aber meine Frage ist - kann jemand geben Sie mir REAL WORLD Beispiele wo diese Sortieralgorithmen implementiert sind.

+2

http://stackoverflow.com/questions/1933759/when-is-each-sorting-algorithm-used –

+0

Dank für Ihre Antwort, aber Sie können auch Geben Sie bitte, reale Beispiele wie, Video-Streaming Daten sortieren, suchen Sie Adressen von Personen mit Vornamen, die mit K beginnen, in einem Telefonverzeichnis von über 5 Millionen Personen. – Amey

Antwort

7

Wenn die Anzahl der Elemente zunimmt, werden Sie anspruchsvollere Sortieralgorithmen verwenden. Die späteren Sortierungstechniken haben einen höheren Anfangsaufwand, daher müssen viele Elemente sortiert werden, um diese Kosten zu rechtfertigen. Wenn Sie nur 10 Elemente haben, ist eine Blasen- oder Einfügesortierung viel schneller als eine Zusammenführungssortierung oder ein Heapsort.

Die Raumkomplexität ist bei kleineren Embedded-Geräten wie einer TV-Fernbedienung oder einem Mobiltelefon wichtig. Sie haben nicht genug Platz, um auf diesen Geräten so etwas wie einen Heapsort zu machen.

Datenbanken verwenden eine externe Zusammenführungssortierung, um Datensätze zu sortieren, die zu groß sind, um vollständig in den Speicher geladen zu werden. Der treibende Faktor bei dieser Art ist die Verringerung der Anzahl der Platten-I/Os.

Good bubble sort discussion, es gibt viele andere Faktoren zu berücksichtigen, die zu einer Zeit- und Raumkomplexität beitragen.

Sorting-Algorithms.com

+0

Vielen Dank für Ihre Antwort, also wird man niemals in einem realen Szenario Bubble-Sort oder Insertion-Sort verwenden müssen? – Amey

+0

Wenn Sie wissen, dass Sie nicht sehr viele Elemente sortieren müssen, ist es besser, Blasensortierung oder Einfügesortierung zu verwenden. Ich programmierte eine TV-Fernbedienung, die einen MIPS-Prozessor verwendete, und ich benutzte Blasensortierung, um die Kanäle nach der längsten Betrachtungszeit zu sortieren. Es gab nur 100 Kanäle. Wenn Sie außerdem wissen, dass die Elemente in einer nahezu sortierten Reihenfolge sind, ist eine Blasensortierung gut, weil sie in einer viel besseren Geschwindigkeit endet als der durchschnittliche Fall von n/2 Durchgängen. – JustinDanielson

+0

Danke Justin, willst du es (den Blasensortierteil) in dein Ergebnis bearbeiten. Ich markiere das als Antwort. – Amey

0

Ein Beispiel ist C++ STL sort

als wikipedia page sagt:

Die GNU Standard C++ Bibliothek zum Beispiel verwendet ein Hybrid-Sortier Algorithmus: Introsort zuerst durchgeführt wird, zu einer maximalen Tiefe gegeben durch 2 × log2 n, wobei n die Anzahl der Elemente ist, gefolgt von einer Einfügung Sortierung nach dem Ergebnis. 1 Unabhängig von der Implementierung sollte die Komplexität im Durchschnitt O (n log n) sein. [2]

Verwandte Themen