Rozdiel medzi rýchlym a zlúčeným zoradením

Triedenie položiek v zozname je bežná úloha a často je časovo náročná. Termín triedenie sa všeobecne vzťahuje na usporiadanie položiek v zozname buď vzostupne alebo zostupne na základe vopred určeného vzťahu pri objednávaní. Triedenie je často určené na vyhľadávanie, čo je jeho ďalšou základnou činnosťou v spracovaní údajov. Predstavte si, aké by bolo ťažké hľadať slovo v slovníku, keby slová v ňom neboli usporiadané alebo usporiadané. To je dôvod, prečo sú záznamy v slovníku vedené v štandardnom abecednom poradí. Početné úlohy a výpočty sa stávajú bez námahy jednoduchým triedením. A to je miesto, kde na obrázku prichádzajú triediace algoritmy.

Algoritmus triedenia nie je nič iné ako metóda na usporiadanie prvkov zoznamu do konkrétneho poradia, ako je napríklad najnižšia hodnota, najvyššia hodnota, rastúce poradie, klesajúce poradie, abecedné atď. Najbežnejšie používané poradia sú číselné a lexikografické poradie. Algoritmy často používajú triedenie ako kľúčový podprogram. V celom texte sa používa široká škála algoritmov triedenia, z ktorých každý využíva bohatú skupinu techník. Jedným z takýchto populárnych, ale rovnako výkonných algoritmov je algoritmus Divide and Conquer, ktorý je algoritmom založeným na viacnásobnej vetve. Rýchle zoradenie a zlúčenie zoradenia sú dva bežne používané algoritmy založené na algoritme Divide a Conquer.

Čo je to rýchle zoradenie?

Rýchle zoradenie je vysoko efektívny, ale efektívny triediaci algoritmus založený na rozdelení a dobytí, ktorý je dosť podobný dynamickému prístupu, v ktorom je problém rozdelený na dva alebo viac čiastkových problémov a potom vyriešený rekurzívne. Ak je veľkosť čiastkových problémov dosť nízka, potom sa riešia jednoducho a bez problémov. Algoritmus rýchleho triedenia, tiež nazývaný triedenie výmeny diskových oddielov, rozdeľuje zoznam, ktorý sa má triediť, do troch hlavných častí: 1) Otočný prvok (stredné prvky), 2) prvky menšie ako otočný a 3) prvky väčšie ako otočný. Samotný čap sa pohybuje medzi týmito dvoma skupinami do svojej konečnej polohy a potom sa QUICK SORT aplikuje rekurzívne.

Čo je Merge Sort?

Zlúčiť zoradenie je ďalší univerzálny algoritmus triedenia založený na technike rozdelenia a dobytia. Je to jeden z najuznávanejších a najpopulárnejších algoritmov triedenia navrhnutých tak, aby sa používal efektívne na triedenie údajov, ktoré sa ukladajú externe do súboru. Ponúka O (n log n) správanie v najhoršom prípade, keď používa O (n) ďalšie úložisko. Kolekciu „A“ rozdeľuje na dve menšie kolekcie, z ktorých každá je potom triedená. V záverečnej fáze sa tieto dve zoradené zbierky zlúčia späť do jednej zbierky veľkosti n. Toto bude triedený zoznam. Algoritmus je pomerne rýchly a je tiež stabilný a je ideálny pre prepojené zoznamy.

Rozdiel medzi rýchlym a zlúčeným zoradením

základy

- Rýchle zoradenie aj zlúčené zoradenie sú algoritmy triedenia založené na rozdelení a dobytí s rovnakým základným princípom - rozdeliť problém na dva alebo viac čiastkových problémov a potom ich vyriešiť rekurzívne. Líšia sa však v postupoch zlúčenia a výkone. Rýchle zoradenie je vo všeobecnosti lepšie a rýchlejšie ako iné triediace algoritmy vrátane zlúčenia zoradenia, pokiaľ ide o malú množinu údajov, zatiaľ čo zlúčenie zoradenia zachováva konzistenciu bez ohľadu na typ množiny údajov. Rýchle zoradenie je ideálne uprednostňované pre polia, zatiaľ čo zlúčené zoradenie je ideálne pre prepojené zoznamy.

Vesmírna zložitosť

- Algoritmus triedenia v rýchlom triedení sa vykonáva rekurzívne a každé rekurzívne volanie vyžaduje miesto v zásobníku. Nevyžaduje sa ďalší priestor na zlúčenie, s výnimkou jedného pamäťového priestoru na zlúčenie. Pretože ide o algoritmus triedenia na mieste, na triedenie nie je potrebný žiadny ďalší priestor. V skutočnosti používa rovnaké pole pri rozdelení a zlúčení poľa. Na druhej strane v Merge Sort existuje niekoľko spôsobov, ako reprezentovať údaje v súbore alebo v poli, takže potrebuje také pracovné oblasti, ako sú podsúbory alebo polia rovnakej veľkosti, ktoré si vyžadujú viac miesta..

Najhorší prípad zložitosti

- Najhoršie správanie v prípade rýchleho zoradenia nastane, keď je rozdelenie nevyvážené, čo závisí od toho, ktoré prvky sa používajú na rozdelenie. V takom prípade algoritmus beží asymptoticky rovnako pomaly ako pri vkladaní. Najhorší výkon funkcie Quick Sort je O (n2) a zostáva ako cvičenie. Tomu sa však dá vyhnúť výberom správneho otočného čapu. Na druhej strane najhorší prípad zlúčenia zoradenia nastane, keď musí vykonať maximálny počet porovnávaní. Ak vezmeme do úvahy lineárny výkon pri zlučovaní, najhorší výkon zlučovania je O (n log2 n).

výkon

- Aj keď algoritmy Quick Sort aj Merge Sort sú založené na prístupe rozdelenia a dobyvania pre triedenie, líšia sa metódami použitými na vykonanie postupov rozdelenia a zlúčenia. V prípade rýchleho zoradenia je hlavnou časťou práce rozdelenie zoznamu do dvoch podzoznamov, ktoré sa uskutočnia pred zoradením podzoznamov. V prípade zlúčenia zoradenia je hlavnou časťou práce zlúčenie dvoch podzoznamov, ktoré sa uskutočnia po zoradení podzoznamov. Zlúčiť zoradenie vyžaduje dočasné pole na zlúčenie dvoch čiastkových polí, zatiaľ čo pre rýchle zoradenie nie je potrebný žiadny ďalší priestor, takže je efektívnejšie ako priestorové triedenie..

Rýchle zoradenie vs. zlúčenie zoradenia: porovnávacia tabuľka

Zhrnutie rýchleho zoradenia vs. zlúčenia

Algoritmy Quick Sort aj Merge Sort sú založené na rozdelení a zdolávaní prístupu k triedeniu. Líšia sa však metódami používanými na vykonávanie postupov rozdelenia a zlúčenia. V zásade pracujú na rovnakom princípe - rozdeliť problém na dva alebo viac čiastkových problémov a potom ich vyriešiť rekurzívne. Zlúčiť zoradenie je v najhoršom prípade efektívnejšie ako rýchle zoradenie, ale v priemernom prípade sú tieto dva rovnako účinné. Rýchle zoradenie je však priestorovo efektívnejšie ako zlúčiť zoradenie. Takže rýchle zoradenie je nepochybne rýchlejšie a lepšie ako zlúčiť zoradenie, ale v niekoľkých situáciách, napríklad pri porovnávaní, sa stáva neefektívnym..