## **Ř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.