...chimb 6154087426061275170503897653908512509612677765703D
escreste jFiecare comparatie din exemplu, a implicat cheia 503 in general, fiecare comparatie va implica valoarea originala a cheii K1, deoarece ea va fi modificata odata cu fiecare schimbare de directie.In momentul cand ij, inregistrarea originala R1, va fi plasata in pozitia finala, deoarece se poate vedea ca nu vor exista chei mai mari la stanga sa si nici mai mici la dreapta sa. Inregistrarile vor fi impartite intr-o asemenea maniera, incat problema initiala este redusa la doua probleme mai simple sortarea Ri - Ri-1 si sortarea Ri1 - RN. Se poate aplica aceasi tehnica fiecarei dintre aceste doua multimi de inregistrari.Pentru a tine minte multimile de elemente care sunt impartite, se foloseste o stiva. Alt exemplu, care arata modul in care sunt sortate inregistrarile prin acesta metoda, este dat in tabelul de mai jos. Parantezele, indica inregistrarile care mai trebui sortate inregistrarile impartite in grupe sunt reprezentate prin doua variabile l si r, care reprezinta limitele inregistrarilor care sunt curent examinate.Stiva l,ri5030875120619081708972756534261545096126777657
03s1,16 - i154087426061275170s503i89765390851250961267776570
3s1,6 8,16i061087s154i426275170s503i89765390851250961267
7765703s1,2 4,6 8,16061087154426275170503i897653908512509612677765
703s4,6 8,16061087154170275426503i897653908512509612677765
703s4,5 8,16061087154170275426503i897653908512509612677765
703s8,16 -0610871541702754265037036537655125096126778979088
,14 -0610871541702754265036776536125125097037658979088
,12 -0610871541702754265035096536125126777037658979088
,11 -0610871541702754265035096536125126777037658979089
,11 -0610871541702754265035095126126536777037658979089
,10 -061087154170275426503509512612653677703765897908- -Aceata metoda de sortare, a fost numita sortare prin interschimb de partitii ea a fost propusa de C. A. R. Hoare. Hoare, si-a denumit metoda sortare rapida. Intregul proces de sortare, necesita doar 48 de comparatii, fiind intrecuta la numarul de comparatii doar de sortarea prin insertie binara, care are un numar de 47 de comparatii. Si numarul de interschimbari este destul de mic, ea necesitand doar 17 interschimbari.AlgoritmulInregistrarile R1, ..., RN sunt rearanjate pe loc dupa terminarea sortarii, cheile lor vor fi in ordine K1, ..., KN. Pentru memorarea temporara, este necesara o stiva cu cel mult log2N intrari.Se presupune prezenta cheilor artificiale K0- INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn1.gif t MERGEFORMATINET si KN1 INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn2.gif t MERGEFORMATINET , astfel incat, K0 INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn3.gif t MERGEFORMATINET Ki INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn4.gif t MERGEFORMATINET KN1 pentru 1 INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn5.gif t MERGEFORMATINET i INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn6.gif t MERGEFORMATINET N. egalitatea este permisa. Subgrupele de inregistrari ale lui M, sau un numar redus de inregistrari, sunt sortate prin insertie directa, unde M INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn7.gif t MERGEFORMATINET 1 este un parametru care trebuie ales dupa cum se descrie mai jos. Pe durata unei etape particulare, sunt efectuate una sau doua comparatii suplimentare permitand indicatorilor i si j sa se intersecteze. Inregistrarile cu chei egale, sunt interschimbate, desi nu este strict necesar Idea este datorata lui R. C. Singleton, si ajuta la sectionarea grupurilor de inregistrari pe jumatate, atunci cand sunt un numar egal de elemente. iInitializeaza.s Stabileste stiva vida si l1, rN iIncepe o noua etapa.s Se doreste sortarea grupurilor de inregistrari Rl ...Rr. Daca r-1M, mergi la pasul 8. In caz contrar, stabileste il, jr, KKl, RRl. iCompara KKj.sDaca KKj, micsoreaza j cu 1 si repeta acest pas. iTransfer la Ri.s La acest pas, Ki este o cheie nesemnificativa INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn8.gif t MERGEFORMATINET K, si K INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn9.gif t MERGEFORMATINET Kj. Daca j INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn10.gif t MERGEFORMATINET i, stabileste RiR si mergi la pasul 7. Altfel, RiRj mareste i cu 1. iCompara KiK.s Daca KiK, mareste i cu 1 si repeta acest pas. iTransfer la Rj.s La acest pas, Kj este o cheie nesemnificativa INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn11.gif t MERGEFORMATINET K, siK INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn12.gif t MERGEFORMATINET Ki. Daca j INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn13.gif t MERGEFORMATINET i, stabileste RjR si ij. Altfel, RjRi, micsoreaza j cu 1 si mergi la pasul 3. iPune in stiva.s Acum, grupa de inregistrari, Rl...Ri...Rr a fost partitionata astfel incat Kk INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn14.gif t MERGEFORMATINET Ki pentru l INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn15.gif t MERGEFORMATINET k INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn16.gif t MERGEFORMATINET i si Ki INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn17.gif t MERGEFORMATINET Kk pentru i INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn18.gif t MERGEFORMATINET k INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn19.gif t MERGEFORMATINET r. Daca r-i INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapidasincsh
tmseqn20.gif t MERGEFORMATINET i-l, plaseaza i1,r in varful stivei si stabileste ri-1. In caz contrar, plaseaza l,i-1 in varful stivei si stabileste li1. Fiecare intrare a,b in stiva, reprezinta o cerere de sortare a grupului de inregistrari Ra...Rb la un anumit timp, in viitor. Acum, mergi inapoi la pasul 2. iSortare prin insertie directa.s pentru jl1 la r-1, efectueaza urmatoarele operatii stabileste KKj, RRj, ij-1 apoi, stabileste Ri1Ri, ii-1, de zero sau mai multe ori, pana cand KiK apoi stabileste Ri1R. Acesta, este in esenta algoritmul de sortare prin insertie directa, aplicat grupului de inregistrari formate din M sau mai putine elemente. iAnuleaza stiva.s Daca stiva este vida, sortarea s-a efectuat in caz contrar, inlatura intrarea ei din varf l,r, stabileste ll, rr si revino la pasul 2. Algoritmul reprezentat prin scheme logice INCLUDEPICTURE httpalgoritmi.pardel.netimaginisortarerapida.jpg t MERGEFORMATINET ...
Download