Prečo je časová zložitosť dôležitá?

Možno si už počul, že programovanie je ako matematika. Je to pravda, ale s jedným veľkým rozdielom. V matematike je každý správny spôsob, ako dospieť k výsledku, rovnako dobrý. Ale v programovaní to tak nie je.

Keď riešime nejaký problém, často existuje viacero spôsobov, ako ho vyriešiť. Ako ale zistíme, ktorý z nich je najlepší? A čo to vlastne znamená "byť najlepší"?

Jedným z najdôležitejších kritérií je rýchlosť. Predstav si, že čakáš na výsledok nejakého programu hodiny, keď by si ho mohol mať za pár sekúnd. To určite nechceš! Preto sa budeme rozprávať o tom, čomu hovoríme časová zložitosť algoritmov.

Kde sa stretneš s potrebou rýchlych programov? V podstate kdekoľvek:

  • Keď otvoríš svoju e-mailovú schránku, nechceš predsa čakať hodinu, kým sa ti načítajú správy.
  • Keď hľadáš nejaké slovo v dlhom texte, očakávaš, že ti počítač odpovie hneď.
  • Dokonca aj vo svete podnikania, napríklad v bankách, je rýchlosť kľúčová. Banky si vymieňajú obrovské množstvo správ (napríklad platobných príkazov) každý deň. Keby bolo ich spracovanie pomalé, platby by sa začali hromadiť a banky by nefungovali.

Preto vznikla celá oblasť v programovaní, ktorá sa zaoberá časovou zložitosťou algoritmov. Ide v nej o to, aby sme vedeli odhadnúť, koľko údajov dokáže program spracovať v rozumnom čase.