Ordinare gli oggetti in una lista è un compito banale e spesso richiede tempo. Il termine ordinamento generalmente si riferisce alla disposizione degli articoli in una lista in ordine ascendente o discendente in base a una relazione di ordinamento prestabilita. L'ordinamento è spesso inteso per la ricerca, che è l'ennesima attività fondamentale nell'elaborazione dei dati. Immagina quanto sarebbe stato difficile cercare una parola su un dizionario se le parole non erano state organizzate o ordinate. Questo è il motivo per cui le voci in un dizionario sono mantenute in un ordine alfabetico standard. Numerosi compiti e calcoli diventano semplici semplicemente ordinando. Ed è qui che gli algoritmi di ordinamento arrivano all'immagine.
Un algoritmo di ordinamento non è altro che un metodo per organizzare gli elementi di un elenco in un ordine specifico, come il valore dal più basso al più alto, dal più basso al più basso, ordine crescente, ordine decrescente, alfabetico, ecc. Gli ordini più comunemente usati sono l'ordine numerico e lessicografico. Gli algoritmi usano spesso l'ordinamento come una subroutine chiave. Ci sono una grande varietà di algoritmi di ordinamento utilizzati in tutto, ognuno dei quali utilizza un ricco insieme di tecniche. Un algoritmo così popolare ma altrettanto potente è l'algoritmo Divide and Conquer che è un algoritmo basato sulla ricorsione multi-branch. Sort Sort e Merge Sort sono i due algoritmi comunemente usati basati su algoritmo Divide and Conquer.
Quick Sort è un algoritmo di ordinamento altamente efficiente ma efficace basato sull'approccio divide et impera che è abbastanza simile all'approccio dinamico in cui un problema è diviso in due o più sotto-problemi e quindi risolto ricorsivamente. Se la dimensione dei problemi secondari è abbastanza piccola, vengono risolti semplicemente in modo semplice e senza problemi. Chiamato anche ordinamento di scambio di partizioni, l'algoritmo di ordinamento rapido divide l'elenco da ordinare in tre parti principali: 1) Elemento di pivot (elementi centrali), 2) elementi inferiori al pivot e 3) elementi maggiori del pivot. Il perno stesso viene spostato tra i due gruppi nella sua posizione finale e QUICK SORT viene quindi applicato in modo ricorsivo.
Unisci Ordina è ancora un altro algoritmo di ordinamento per uso generale basato sulla tecnica divide et impera. È uno degli algoritmi di ordinamento più rispettati e popolari progettato per essere utilizzato in modo efficiente per ordinare i dati memorizzati esternamente in un file. Offre il comportamento O (n log n) nel peggiore dei casi durante l'utilizzo di memoria aggiuntiva O (n). Divide una raccolta 'A' in due raccolte più piccole, ciascuna delle quali viene quindi ordinata. Nella fase finale, queste due raccolte ordinate vengono riunite in un'unica raccolta di dimensioni n. Questa sarà la lista ordinata. L'algoritmo è abbastanza veloce ed è anche un ordinamento stabile, ed è idealmente preferito per gli elenchi collegati.
- Sia Quick Sort che Merge Sort sono gli algoritmi di ordinamento basati su dividi e vittorie con lo stesso principio di base: dividere un problema in due o più sotto-problemi e quindi risolverli ricorsivamente. Tuttavia, differiscono nelle procedure di unione e in termini di prestazioni. L'ordinamento rapido è generalmente migliore e più veloce rispetto ad altri algoritmi di ordinamento, tra cui Merge Sort quando si tratta di piccoli set di dati, mentre Merge Sort mantiene la coerenza indipendentemente dal tipo di set di dati. Quick Sort è idealmente preferito per gli array, mentre Merge Sort è idealmente preferito per gli elenchi collegati.
- L'ordinamento nell'algoritmo di Ordinamento veloce viene eseguito in modo ricorsivo e ogni chiamata ricorsiva richiede una posizione di stack. Non richiede spazio aggiuntivo per la fusione, ad eccezione di un singolo spazio di memoria per la fusione. Poiché si tratta di un algoritmo di ordinamento sul posto, non è richiesto spazio aggiuntivo per eseguire l'ordinamento. Infatti, utilizza lo stesso array durante la divisione e l'unione della matrice. In Merge Sort, d'altra parte, ci sono diversi modi di rappresentare i dati in un file o come una matrice, quindi ha bisogno di tali aree di lavoro come sotto-file o matrici della stessa dimensione che richiedono spazio aggiuntivo.
- Il comportamento peggiore per l'ordinamento rapido si verifica quando il partizionamento è sbilanciato, che dipende da quali elementi vengono utilizzati per il partizionamento, nel qual caso l'algoritmo viene eseguito asintoticamente con la stessa lente dell'inserimento. Le prestazioni peggiori di Quick Sort sono O (n2) e viene lasciato come esercizio. Tuttavia, può essere evitato scegliendo il perno giusto. Il caso peggiore di Merge Sort, d'altra parte, si verifica quando deve fare il numero massimo di confronti. Considerando le prestazioni lineari per l'unione, le prestazioni nel caso peggiore di Merge Sort sono O (n log2 n).
- Sebbene entrambi gli algoritmi Ordinamento rapido e Ordinamento unione siano basati sull'approccio Divisione e conquista per l'ordinamento, differiscono in base ai metodi utilizzati per eseguire le procedure di suddivisione e unione. Per l'ordinamento rapido, la maggior parte del lavoro consiste nel suddividere l'elenco in due sotto-elenchi che avvengono prima che vengano ordinati gli elenchi secondari. Per Unisci ordinamento, la maggior parte del lavoro consiste nell'unire due sotto-elenchi che si svolgono dopo l'ordinamento delle sotto-liste. Unisci ordinamento richiede un array temporaneo per unire due sottosegmenti, mentre per lo Ordinamento veloce non è richiesto spazio aggiuntivo per lo spazio, il che lo rende più efficiente rispetto a Marge Sort.
Sia gli algoritmi Ordinamento rapido che Ordinamento unione si basano sull'approccio divide and conquer per l'ordinamento. Tuttavia, si differenziano per i metodi utilizzati per eseguire le procedure di divisione e unione. Fondamentalmente lavorano sullo stesso principio - per dividere un problema in due o più sotto-problemi e poi risolverli ricorsivamente. Unisci Ordina è più efficiente di Ordinamento rapido nel caso peggiore, ma i due sono ugualmente efficienti nel caso medio. Ma l'ordinamento rapido è più efficiente in termini di spazio rispetto all'ordinamento di unione. Quindi Quick Sort è indubbiamente più veloce e migliore di Merge Sort ma diventa inefficiente in alcune situazioni come quando si tratta di confronti.