time complexity
Főnév
time complexity (tsz. time complexities)
- (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ömbindexelé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?
- 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.
- Algoritmus-összehasonlítás Ugyanarra a feladatra választhatjuk a gyorsabb aszimptotikailag kedvezőbb eljárást.
- 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.
- time complexity - Szótár.net (en-hu)
- time complexity - Sztaki (en-hu)
- time complexity - Merriam–Webster
- time complexity - Cambridge
- time complexity - WordNet
- time complexity - Яндекс (en-ru)
- time complexity - Google (en-hu)
- time complexity - Wikidata
- time complexity - Wikipédia (angol)