Sorting

Sorting

Porovnanie základných triediacich algoritmov Bubble Sort, Merge Sort a Quick Sort.

Základné porovnanie

VlastnosťBubble SortMerge SortQuick Sort
PrincípOpakované prehadzovanie susedovRozdelenie a zlučovanieRozdelenie podľa pivota
Zložitosť (najhoršia)O(n²)O(n log n)O(n²) (pri zlom výbere pivota)
Zložitosť (priemerná)O(n²)O(n log n)O(n log n)
Zložitosť (najlepšia)O(n) (už zoradené)O(n log n)O(n log n)
Pamäťová zložitosťO(1)O(n)O(log n) (rekurzia)
Stabilný algoritmus✔️ Áno✔️ Áno❌ Nie (vo všeobecnosti)
Triedenie „na mieste“✔️ Áno❌ Nie (vyžaduje pomocné polia)✔️ Áno
Náročnosť implementácie🟢 Jednoduchá🟡 Stredne náročná🔴 Náročnejšia
Vhodný pre veľké dáta❌ Nie✔️ Áno✔️ Áno

Kedy použiť ktorý algoritmus?

  • Bubble Sort

    • ✅ Vzdelávacie účely, veľmi malé dáta
    • ❌ Nevhodný pre reálne použitie – pomalý
  • Merge Sort

    • ✅ Stabilné triedenie, veľké dáta
    • ✅ Vhodný pre spájanie externých súborov
    • ❌ Potrebuje dodatočnú pamäť (O(n))
  • Quick Sort

    • ✅ Veľmi rýchly v praxi, triedi na mieste
    • ✅ Vhodný pre veľké dátové množiny v pamäti
    • ❌ Náchylný na zlé výbery pivota (možnosť O(n²))

Príklad triedenia poľa [11, -2, 4, 52, -6, 17, 28]

AlgoritmusVýsledokPočet krokovPamäť
Bubble Sort[-6, -2, 4, 11, 17, 28, 52]mnoho výmen (O(n²))1
Merge Sort[-6, -2, 4, 11, 17, 28, 52]logické rozdelenia + zlučovaniepomocné polia
Quick Sort[-6, -2, 4, 11, 17, 28, 52]rýchle triedenie podľa pivotalen zásobník volaní

Zhrnutie

  • Ak chceš jednoduchosť a názornosť → Bubble Sort
  • Ak chceš stabilitu a efektivitu → Merge Sort
  • Ak ti záleží na rýchlosti a nízkej pamäti → Quick Sort

Porovnanie výkonnosti grafom

Sorting performance

Tento graf zobrazuje porovnanie výkonnosti troch algoritmov triedenia:

  • Bubble Sort: výkon klesá veľmi rýchlo pri väčších vstupoch kvôli kvadratickej zložitosti O(n²).
  • Merge Sort: rastie pomalšie – má zložitosť O(n log n), efektívnejší pre väčšie dáta.
  • Quick Sort: veľmi podobný ako Merge Sort, ale o niečo rýchlejší v priemere (najmä pri dobre zvolenom pivote).

Graf jasne ukazuje, že pre väčšie dátové množstvá je Bubble Sort nevhodný, zatiaľ čo Merge Sort a Quick Sort škálujú podstatne lepšie. Chceš aj časové porovnanie v milisekundách pri reálnych dátach?