2012-06-13 2 views
5

Sto rischiando di chiudere questa domanda prima di ottenere una risposta, ma voglio davvero sapere la risposta. Quindi ecco qui.Esempi reali per decidere quale algoritmo di ordinamento funziona meglio


Attualmente sto cercando di imparare algoritmi, e sto cominciando a capire come tale, ma non riesco a rapportarsi ad esso.

Capisco complessità temporale e complessità spaziale. Anche io capisco alcuni algoritmi di ordinamento in base al codice di pseudo

Algoritmi di ordinamento come

  1. Bubble Sort
  2. inserimento Ordina
  3. Selection Sort
  4. Quicksort
  5. Mergesort
  6. Heapsort (Alcuni che cosa)

Sono inoltre a conoscenza di Best Case e Caso peggiore Scenario (caso medio non tanto).


Alcuni riferimenti rilevanti in linea

  • Nice place che mostra tutto quanto sopra graficamente.
  • This mi ha dato una buona comprensione pure.

ma la mia domanda è - qualcuno può darmi ESEMPI MONDO REALE in cui sono implementati questi algoritmi di ordinamento.

+2

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

+0

grazie per la risposta, ma ti invitiamo a fornire anche, esempi reali come, video streaming ordinamento dati, ricerca indirizzi di persone con nome che iniziano con K in un record telefonico di oltre 5 milioni di persone. – Amey

risposta

7

All'aumentare del numero di elementi, verranno utilizzati algoritmi di ordinamento più sofisticati. Le tecniche di smistamento successive hanno un sovraccarico iniziale più elevato, quindi è necessario disporre di molti elementi da ordinare per giustificare tale costo. Se hai solo 10 elementi, un ordinamento a bolle o inserzione sarà molto più veloce di un ordinamento di fusione o heapsort.

La complessità dello spazio è importante da considerare per i dispositivi embedded più piccoli come un telecomando TV o un telefono cellulare. Non hai abbastanza spazio per fare qualcosa come un heap su questi dispositivi.

Datebase utilizzano un ordinamento unione esterna per ordinare insiemi di dati che sono troppo grandi per essere caricati interamente nella memoria. Il fattore di guida in questo genere è la riduzione del numero di I/O del disco.

Good bubble sort discussion, ci sono molti altri fattori da considerare che contribuiscono a una complessità di tempo e spazio.

Sorting-Algorithms.com

+0

grazie per la vostra risposta, quindi in nessun momento si dovrà mai usare il bubble sort o l'ordinamento per inserzione in uno scenario reale? – Amey

+0

Se si sa che non si hanno molti elementi da ordinare, è meglio usare l'ordinamento a bolle o l'ordinamento di inserimento. Ho programmato un telecomando TV che utilizzava un processore MIPS e ho usato bubble sort per ordinare i canali sul tempo di visualizzazione più lungo. C'erano solo 100 canali. Inoltre, se sai che gli elementi sono in ordine quasi ordinato, un ordinamento di bolle è buono perché finirà in una velocità molto migliore rispetto al caso medio di n/2 passaggi. – JustinDanielson

+0

Grazie Justin, vuoi modificarlo (la parte relativa al fumetto) nel tuo risultato. Segnalo come la risposta. – Amey

0

Un esempio è C++ STL sorta

come wikipedia page dice:

La GNU Standard C++, biblioteca, per esempio, utilizza un ibrido di ordinamento algoritmo: introsort viene eseguita per prima, ad una profondità massima dato da 2 × log2 n, dove n è il numero di elementi, seguito da un inserimento sort sul risultato. 1 Qualunque sia l'implementazione, la complessità dovrebbe essere O (n log n) comparazione nella media. [2]