Informatika pro kombinované lyceum/Řadicí algoritmy
Tato cvičná stránka je součástí projektu: | |
střední škola | |
Příslušnost: skupinová |
Řadicí algoritmy
editovatAlgoritmy, které se používají na seřazování nějakého seznamu (nejlépe číselného nebo abecedního), se nazývají algoritmy řadicí, či nepřesněji algoritmy třídící.
Takových algoritmů existuje celá řada. Některé jsou na jisté operace efektivnější než jiné, ale o tom později.
Základní principy řadicích algoritmů
editovatPrincipielně nejzákladnější druhy řadicích algoritmů:
Iterativní algoritmy
editovatTyto algoritmy mají nastavený nějaký postup, který opakovaně vykonávají, dokud se nedoberou ke správnému výsledku. Mezi iterativní algoritmy patří například Bubblesort, Shellsort, Selectsort, nebo Insertsort.
Rekurzivní algoritmy
editovatRekurzivní algoritmy fungují tak, že celek rozdělují na menší části, ty zase na menší a takhle pořád dokola, dokud nejsou hodnoty seřazeny. Poté stačí malé části zase spojit dohromady. Mezi tyto algoritmy patří třeba Mergesort nebo Quicksort.
Druhy řadicích algoritmů
editovatTento algoritmus funguje na principu porovnávání. Časově je nejefektivnějším algoritmem z iterativní skupiny.
Tento algoritmus se nejčastěji využívá pro řazení menších skupin, protože časově není až tak efektivní.
V tomto algoritmu se vždy velikostně porovnávají dva sousedi. Ten větší jde na jednu stranu, menší na druhou. Opakováním tohoto kroku u každé dvojičky postupně vznikne správně seřazená řada. Prakticky se Bubble sort moc nevyužívá, protože potřebuje hodně času.
Shellsort funguje hodně podobně jako Insertsort. S tím rozdílem, že Shellsort neporovnává vždy dalšího souseda, ale porovnává prvky v jistých rozestupech. Přičemž s každým dalším opakováním se tento rozestup o něco málo zmenší. Tento algoritmus je rychlý.
V tomto algoritmu je využita metoda rozděl a panuj.
Quicksort je jedním z nejpoužívanějších algoritmů pro jeho jednoduchost.
Odkazuji zde na stránky algoritmy a třídící/řadící algoritmy, na kterých jsem sama nejlépe pochopila, jak to celé funguje. Můžete si všimnout, že u každého algoritmu je možno pustit si vizualizaci, aby i ti, kteří si popis těžko dostávají do hlavy, si dokázali něco představit. Pokud stále tápete, odkazuji Vás na maďarskou skupinu Algorithmics, kteří ztvárnili tyto řadicí algoritmy pomocí tance. Videa jsou k dispozici na YouTube zde.
Účinnost řadicích algoritmů
editovatNe všechny algoritmy jsou vždy stejně účinné. Záleží jen na nás, jestli potřebujeme, aby algoritmus zvládl úlohu vyřešit za co nejkratší čas, nebo snad aby nám celý program zabíral co nejméně místa. Zde je odkaz na stránku, kde se člověk může podívat a trochu si pohrát s tím, jak různé algoritmy (i více naráz, podle toho, co si vyberete) řeší různé úlohy.
Odkazy pro možnost dalšího studia řadicích algoritmů
editovathttp://www.itnetwork.cz/algoritmy/razeni
Již výše zmíněné stránky: https://www.algoritmy.net/article/1240/Algoritmus a http://www.itnetwork.cz/algoritmy/razeni