## **Řadící algoritmy [Algoritmy – NEZkreslená věda IV](https://www.youtube.com/watch?v=HsO2reAF0IA&ab_channel=Otev%C5%99en%C3%A1v%C4%9Bda)** **Řazení** a **třídění** jsou synonyma pro uspořádání dat do specifického pořadí. Existuje mnoho algoritmů pro řazení dat, které se liší v efektivitě, paměťové náročnosti a použitelnosti pro různé typy dat. ### **Bubblesort** Bubblesort opakovaně **prochází polem** a **porovnává sousední prvky**. Pokud jsou ve špatném pořadí, prohodí je. Bubblesort je jednoduchý, ale pomalý algoritmus s nejhorší časovou složitostí O(n^2). ### **Insertsort** Insertsort postupně **vkládá** prvky do pole **na** jejich **správné místo**. Insertsort je stabilní algoritmus, tj. zachovává pořadí prvků se stejnou hodnotou. Má průměrnou časovou složitost O(n^2), ale pro **menší** datové **soubory** je efektivnější než bubblesort. ### **Selectsort** Selectsort opakovaně **hledá** v poli **nejmenší** (**nebo** **největší**) **prvek** a **vkládá** ho **na začátek** (nebo konec) pole. Selectsort má nejhorší časovou složitost O(n^2), ale je o něco efektivnější než bubblesort a insertsort pro velké datové soubory. ### **Quicksort** Quicksort je **rozděl**-**a**-**panuj** algoritmus, který **rozdělí** pole **na menší podpole** a poté je **rekurzivně seřadí**. Quicksort má průměrnou časovou složitost O(n log n), čímž je **efektivnější** než výše uvedené algoritmy **pro velké** datové **soubory**. ### **Další řadicí algoritmy** Existuje mnoho dalších řadicích algoritmů, například: - **Heap sort:** Efektivní algoritmus s nejhorší časovou složitostí O(n log n). - **Merge sort:** Stabilní algoritmus s nejhorší časovou složitostí O(n log n). - **Counting sort:** Rychlý algoritmus pro řazení celých čísel v daném rozsahu. - **Radix sort:** Rychlý algoritmus pro řazení řetězců. **Tipy:** [https://lh7-us.googleusercontent.com/d6Lgi7W8QCPPtbtfOjkPv8jk169Y9mqRxXa9frNpTLYiowzlfWyl8bxcbq02JnovLcmfMTuL1zzImrn0h4sGEgz6wU-x7eQZOCYOPM423Lji3EMDA8AH6m0xKW8P6O5JnFhcQi3Rb230oc0ihw4ig3Y](https://lh7-us.googleusercontent.com/d6Lgi7W8QCPPtbtfOjkPv8jk169Y9mqRxXa9frNpTLYiowzlfWyl8bxcbq02JnovLcmfMTuL1zzImrn0h4sGEgz6wU-x7eQZOCYOPM423Lji3EMDA8AH6m0xKW8P6O5JnFhcQi3Rb230oc0ihw4ig3Y) **Chtějí najít nový algoritmus aby se algoritmy co máme nyní nemuseli zacyklit například u mapy když vybíráme nejkratší trasu přes mezi zastávky…** [https://lh7-us.googleusercontent.com/HQ7o_z1Uddnt1ZHJF2Pk-UuyIGNjtoHhCBGwrkdBl9J7A1bQU2KrQHzBgQr7hRMkzSXOnT6tFECr1VpaCaKmt6vs-S0jejYUK8puD0RXJHwAD6FDObgeFtxlvY9Q7lvRidrgA01T0K17jQx5Q3TVDbc](https://lh7-us.googleusercontent.com/HQ7o_z1Uddnt1ZHJF2Pk-UuyIGNjtoHhCBGwrkdBl9J7A1bQU2KrQHzBgQr7hRMkzSXOnT6tFECr1VpaCaKmt6vs-S0jejYUK8puD0RXJHwAD6FDObgeFtxlvY9Q7lvRidrgA01T0K17jQx5Q3TVDbc) - Volba řadicího algoritmu závisí na typu dat, požadované efektivitě a paměťové náročnosti. - Pro malé datové soubory postačí jednoduché algoritmy jako bubblesort nebo insertsort. - Pro velké datové soubory jsou efektivnější algoritmy jako quicksort, heap sort nebo merge sort. - Existují online nástroje a knihovny, které vám pomohou s výběrem a implementací řadicího algoritmu. Dobré pochopení řadicích algoritmů vám pomůže vybrat ten správný pro danou úlohu a optimalizovat váš program.