759 Shares 2720 views

Quicksort come un metodo di programmazione

Nel 1960, K. A. Hoar ha sviluppato un metodo per la rapida smistamento di informazioni, divenne il più famoso. Oggi è ampiamente utilizzato nella programmazione, in quanto ha un sacco di caratteristiche positive: può essere utilizzato per i casi generali, richiede un piccolo aumento della memoria aggiuntiva, compatibile con diversi tipi di elenchi e facile da implementare. Ma ci sono svantaggi, che ha Quicksort: utilizzando il lavoro ha permesso un sacco di errori, ed è un po 'instabile.

Tuttavia, è la versione più studiato. Dopo il primo pagamento Hoare, molti lo fanno la sua fitta studio. grande base è stata fondata su questioni teoriche di trovare il tempo trascorso sul posto di lavoro, che è sostenuta da prove empiriche. Ci sono state proposte concrete per migliorare l'algoritmo di base e una maggiore velocità.

Quicksort è molto comune, si può trovare ovunque. Sulla sua base il metodo è implementato TList.Sort, presente in tutte le versioni (tranne 1) Delphi, la funzione di libreria del tempo impiegato per completare, qsort in C ++.

Il principio di base di funzionamento può essere formulato come "divide et impera". Essa si verifica la rottura della lista in due gruppi e sono ordinati per ogni parte da solo. Ne consegue che maggiore attenzione dovrebbe essere prestata al processo di separazione, durante il quale si verifica quanto segue: è determinata da un elemento di base ed è relativamente riarrangiato intera sua lista. Costruito alla sinistra di un gruppo di candidati, il cui valore è inferiore a tutte le altre regole di trasferimento. Si scopre che l'elemento principale nella lista ordinata è al suo posto. La fase successiva – a finire funzioni di ordinamento ricorsive per entrambi i lati degli elementi rispetto alla base. Si conclude il processo funziona solo se l'elenco contiene solo un elemento, che è quello di essere ordinati. Pertanto, al fine di dominare una funzione di programmazione come un breve ordinamento, è necessario conoscere il lavoro di algoritmi di livello inferiore: a) la scelta dell'elemento di base; b) un elenco della permutazione più efficace per produrre due insiemi con valori più piccoli e più grandi.

Familiarizzare con i primi principi. Quando si sceglie l'elemento di base, dovrebbe idealmente essere selezionato dalla lista dei media. Poi sulla rottura è diviso in due parti uguali. Basta calcolare il valore medio della lista è molto difficile, quindi, anche l'ordinamento più veloce bypassa questo lato calcolo. Ma la scelta dell'elemento di base con il valore massimo o minimo -, inoltre, non l'opzione migliore. Nel caso in cui tale determinazione di uno crea liste vuote saranno garantiti, e il secondo pieno. Di qui la conclusione che l'elemento di base deve essere scelto uno che è più vicina alla media, ma sulla massima e minima.

Una volta che una scelta è determinata, si può procedere con l'algoritmo di decomposizione. Questo cosiddetto cicli interni rapido ordinamento. Tutto è costruito su due indici di accesso rapido: prima di andare oltre gli elementi da sinistra a destra, la seconda, al contrario, da destra a sinistra. Inizia esecuzione dell'operazione destra: l'indice è sulla lista e confrontare tutti i valori al principale. Il ciclo è completo quando l'elemento è inferiore o uguale al valore di riferimento. Cioè, v'è un confronto e diminuisce il valore dell'indice. Sulla mano sinistra quando il lavoro è finito maggiore o uguale valore. Qui, il valore di confronto aumenta.

In questa fase di algoritmo di partizionamento che comprende Quicksort, possono verificarsi due situazioni. La prima è che l'indice sulla sinistra è meno di destra. Questo indica un errore, poi ci sono gli elementi sui quali si è affermato nella lista sono nell'ordine sbagliato. Uscita – cambiare i loro posti. La seconda situazione si ha quando sia della colonna è pari o incrociate. Questo indica una separazione di successo della lista, cioè, il lavoro è ora completo.