From Wikipedia, the free encyclopedia
Sudėtingumo teorija – informatikos šaka, nagrinėjanti įvairias algoritmų savybes, dažnai jų įvykdymo greitį. Teorija atsako į klausimą kaip palyginti skirtingus algoritmus sprendžiančius tą pačią užduotį (dažniausiai svarbu yra algoritmo veikimo laikas, bet taip pat nagrinėjama kiek algoritmas sunaudoja atminties, ar jis apskritai baigia darbą, ar galima jį vykdyti lygiagrečiai su keliais kompiuteriais), bei kurie algoritmai yra geriausi.
Pagrindiniai algoritmo sudėtingumo kriterijai: trukmė ir sintaksinis algoritmo aprašymas.[1] Algoritmų sudėtingumą galima tirti šiais būdais:
Laiko sudėtingumo skaičiavimas vertina, kiek laiko reiktų tam tikrai problemai su tam tikru duomenų dydžiu spręsti efektyviausiu algoritmu. Tarkime, kad turint n bitų duomenų kiekį, problema išsprendžiama per n² žingsnių; tokia problema yra n² sudėtingumo. Iš tiesų, kiekvienas algoritmo įgyvendinimas spręstų problemą skirtingu žingsnių skaičiumi, todėl sąlyginis žingsnių skaičius (eilė) žymima O(n²).
dažniausia naudojamas algoritmo blogiausiam atvejui apibūdinti.
dažniausia apibūdina algoritmo geriausią atvejį arba apatinę ribą.
Asimptotiškai „ankštai“ ribai taip pat galioja savybė, . Asimtotiškai „viršutinė“ riba dažnai yra neteisingai naudojama ankštai ribai apibrėžti, kuri nepadengia atvejo.
Žymėjimas , kai vietoj gali būti yra konceptualiai klaidingas, tačiau yra plačiai naudojamas analizuojant algorithmų sudėtingumą. Korektiškumo dėlei reikėtų vartoti
Dažniausi algoritmų sudėtingumo žymėjimai ir jų pavadinimai:
Žymėjimas | Sudėtingumas | Klasė |
---|---|---|
konstantinis | Polinominė (P) | |
logaritminis | ||
polilogaritminis | ||
tiesinis | ||
supratiesinis | ||
kvadratinis | ||
polinominis, kartais geometrinis | ||
eksponentinis | Eksponentinė (NP) | |
faktorialas | ||
? |
Paprasčiausių algoritmų sudėtingumo pavyzdžiai:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.