Sobes.tech
Junior — Middle

Jaké druhy třídění znáte a jaké mají obtíže z hlediska času a paměti?

sobes.tech AI

Odpověď od AI

Existuje mnoho třídicích algoritmů, zde jsou hlavní s jejich časovou a prostorovou složitostí:

  • Bubble Sort (Bublinkové třídění)

    • Čas: O(n²) v nejhorším a průměrném případě
    • Paměť: O(1) (třídění na místě)
  • Insertion Sort (Vkládací třídění)

    • Čas: O(n²) v nejhorším případě, O(n) v nejlepším (téměř seřazený pole)
    • Paměť: O(1)
  • Selection Sort (Výběrové třídění)

    • Čas: O(n²) ve všech případech
    • Paměť: O(1)
  • Merge Sort (Sloučení třídění)

    • Čas: O(n log n) ve všech případech
    • Paměť: O(n) (vyžaduje dodatečnou paměť pro sloučení)
  • Quick Sort (Rychlé třídění)

    • Čas: O(n log n) v průměru, O(n²) v nejhorším případě (zřídka)
    • Paměť: O(log n) (rekurzivní zásobník)
  • Heap Sort (Hromadné třídění)

    • Čas: O(n log n) ve všech případech
    • Paměť: O(1)
  • Timsort — hybridní třídicí algoritmus používaný v Pythonu a Javě

    • Čas: O(n log n) v průměru a v nejhorším případě
    • Paměť: O(n)

Výběr algoritmu závisí na velikosti dat, požadavcích na paměť a stabilitě třídění (zachovává-li pořadí rovnosti prvků). Například Merge Sort je stabilní, Quick Sort je obvykle rychlejší, ale nestabilní.