Kiejtés

  • IPA: [ ˈnɒɟ ˈordoː ˈjɛløleːʃ]

Főnév

nagy ordó jelölés

  1. (matematika, algoritmusok)

A nagy  -jelölés (Big-O notation) egy matematikai jelölés, amely az algoritmusok aszimptotikus idő- vagy tárhely-igényét írja le, különös tekintettel a legrosszabb esetekre. A nagy  -jelölés nem a pontos időtartamot vagy tárhelyet adja meg, hanem az algoritmus skálázhatóságát mutatja meg a bemeneti adatok méretének növekedésével.

Definíció

Egy algoritmus   futási ideje vagy tárhelyhasználata nagy  -jelöléssel  , ha létezik egy   és egy   pozitív egész szám, amelyre:   Ez azt jelenti, hogy   felső korlátot ad  -re az   bemeneti méret növekedésével.

Fontos tulajdonságok

1. A domináns tényező számít: Csak a leggyorsabban növekvő tagot vesszük figyelembe, mert az dominálja az algoritmus viselkedését nagy bemeneti méretek esetén. Példa:   esetén  , mert az   dominálja az  -t és a konstansokat.

2. Konstans szorzók elhagyhatók: Az algoritmus skálázhatósága nem változik a konstans tényezőkkel. Példa: Ha  , akkor  .

3. Különböző bemeneti méretek: A bemeneti méret,  , lehet például egy lista hossza, egy gráf csúcsainak száma, vagy más paraméter, amely az algoritmus futási idejét meghatározza.

Nagy   komplexitási kategóriák

1.   – Konstans idő Az algoritmus futási ideje független a bemeneti mérettől. - Példa: Egy lista első elemének elérése.

2.   – Logaritmikus idő Az algoritmus futási ideje logaritmikusan nő a bemeneti mérettel. - Példa: Bináris keresés.

3.   – Lineáris idő Az algoritmus futási ideje arányos a bemeneti mérettel. - Példa: Egy lista összes elemének bejárása.

4.   – Lineáris-logaritmikus idő Hatékonyabb algoritmusok időkomplexitása, például rendezési algoritmusok. - Példa: MergeSort, QuickSort (átlagos eset).

5.   – Kvadratikus idő Az algoritmus futási ideje a bemeneti méret négyzetével nő. - Példa: Két lista összes párosításának vizsgálata.

6.   – Polinomiális idő Az algoritmus futási ideje a bemeneti méret  -adik hatványával nő. - Példa: Mátrixszorzás ( ).

7.   – Exponenciális idő Az algoritmus futási ideje exponenciálisan nő a bemeneti mérettel. - Példa: Backtracking algoritmusok (pl. a teljes kombinációk generálása).

8.   – Faktoriális idő A futási idő a bemeneti méret faktoriálisával nő. - Példa: Az összes permutáció generálása.

Gyakorlati példák

  1. Példa 1: Lineáris keresés Egy lista minden elemét végignézzük. Futási idő:  .
  2. Példa 2: Bináris keresés Egy rendezett listán keresünk egy elemet, és minden lépésben megfelezzük a keresési tartományt. Futási idő:  .
  3. Példa 3: Rendezési algoritmusok - Bubble Sort:  . - MergeSort:  . - QuickSort (legrosszabb eset):  , de átlagosan  .

Összehasonlítás és rangsor Az alábbiakban bemutatjuk a komplexitások növekedési sorrendjét   függvényében:

 

Nagy  -jelölés az algoritmus tervezésben

1. Optimalizáció célja: Az algoritmus tervezésekor a legkisebb idő- és tárhelykomplexitást keressük. 2. Aszimptotikus elemzés: Segít előre jelezni az algoritmus viselkedését nagy bemeneti méreteknél. 3. Pontosítás nélkül: A nagy   csak az aszimptotikus felső korlátot adja meg, nem az algoritmus konkrét futási idejét.

A nagy  -jelölés megértése és alkalmazása alapvető fontosságú az algoritmusok hatékonyságának elemzéséhez és összehasonlításához.

Fordítások