Ugrás a tartalomhoz

time complexity

A Wikiszótárból, a nyitott szótárból


Főnév

time complexity (tsz. time complexities)

  1. (informatika) A futásidő-komplexitás (time complexity) azt méri, hogy egy algoritmus milyen mértékben „drága” a bemenet méretének növekedésével, tipikusan azzal arányosítva, hogy a műveletek száma (vagy időigénye) hogyan skálázódik a bemeneti n elemével. A leggyakoribb jelölések a Big O, Big Θ és Big Ω, amelyek a futásidő felső-, pontos- illetve alsó becslését adják meg.



1. Big O jelölés (felső korlát)

ha vannak pozitív konstansok és , hogy minden -ra

Ez azt jelenti, hogy nagy -nél a futásidő legrosszabb esetben nem nő gyorsabban, mint valamilyen egyszerűbb függvény, például , , , stb.



2. Big Θ jelölés (szoros becslés)

ha egyszerre

teljesül nagy -re. Ilyenkor pontosan jellemzi a növekedést mind alsó, mind felső irányból.



3. Big Ω jelölés (alsó korlát)

ha van , , hogy

minden -ra. Ez a legjobb eset („best-case”) viselkedés alsó korlátját adja meg.



4. Leggyakoribb komplexitási osztályok

Osztály Jelölés Példa algoritmus
Konstans tömb­indexelés, változó­hozzáférés
Logaritmikus bináris keresés
Lineáris egyszeri végigjárás, összegzés
**Lineáris-logarit­ Quicksort (átlagosan), MergeSort
Kvadratikus buborékrendezés, Shellsort (worst case gap-ssel)
Kúbikus Floyd–Warshall (legrövidebb utak)
Exponenciális brute-force részhalmaz-vizsgálat
Faktoriális teljes permutációs próba



5. Legrosszabb, átlagos és legjobb eset

  • Legrosszabb eset (worst-case): a legnagyobb idő, amit a legrosszabb bemenettel okozhatunk.
  • Átlagos eset (average-case): a bemenetek valószínűségi eloszlásán vett várható futásidő.
  • Legjobb eset (best-case): a leggyorsabb lehetséges végrehajtás ideje.

Egy algoritmust gyakran a legrosszabb eseti komplexitása alapján osztályozunk, mert ez garantált határ.



6. Mire jó a komplexitás-elemzés?

  1. Skálázhatóság előrejelzése Mérjük, hogy 10 × nagyobb adatnál mennyi futásidő-növekedésre számíthatunk.
  2. Algoritmus-összehasonlítás Ugyanarra a feladatra választhatjuk a gyorsabb aszimptotikailag kedvezőbb eljárást.
  3. Erőforrás-tervezés Memória- és időigényt becsülhünk előre nagy rendszerekben.



7. Összefoglalás

A futásidő-komplexitás formális fogalmai (Big O, Θ, Ω) nélkülözhetetlenek az algoritmusok elemzésében és összehasonlításában. Segítségükkel nemcsak a mai inputméretekre, de a jövőbeni skálázódásra is rálátást nyerünk, és megalapozottabb döntéseket hozhatunk arról, melyik algoritmust érdemes választani.