Legrosszabb eseti komplexitás

egy algoritmus legrosszabb aszimptotikus komplexitása

A számítástechnikában (kifejezetten a számítási komplexitás elméletében) a legrosszabb eseti komplexitás méri az erőforrásokat (pl. futási idő, memória), amire egy algoritmusnak szüksége van egy tetszőleges méretű bemenet (gyakran n-ként jelölve) esetén. Megadja az algoritmus által használt erőforrások felső korlátját.

Futási időben a legrosszabb eseti időkomplexitás jelzi a leghosszabb futási időt, amit egy algoritmus teljesített bármilyen n méretű bemenet esetén, ezzel garantálja, hogy az algoritmus le fog futni a jelzett időtartamon belül. A legrosszabb eseti komplexitás növekedés rendje (pl. lineáris, logaritmikus) gyakran használt algoritmusok hatékonyságának összehasonlítására.

Egy algoritmus legrosszabb eseti komplexitását érdemes összevetni az átlagos eseti komplexitásával, ami egy átlagos mértéke az algoritmus által használt erőforrásoknak egy véletlen bemenet esetén.

Definíció szerkesztés

Adott számítási modell és egy   algoritmus esetén, ami megáll minden   bemenetnél , a   leképzést   időkomplexitásának hívjuk, ha minden   bemeneti karakterlánc esetén   megáll pontosan   lépés után.

Mivel általában az időkomplexitásnak a különböző bemeneti hosszaktól való függése érdekel, a terminológiát abuzálva az időkomplexitás néha a   leképzésre utal, a következő maximális komplexitással:

 

ahol a bemenetek hossza   vagy mérete  .

Kifejezési módok szerkesztés

Egy   algoritmus   komplexitása gyakran aszimptotikus O jelöléssel van megadva, ami a növekedési mértékét   formában adja meg egy bizonyos valós értékű   függvénnyel és a következő jelentéssel:

  • Létezik pozitív valós   szám és egy természetes   szám úgy, hogy
 

Szavakban ez a következőképp fogalmazható meg:

  • „Az   algoritmus legrosszabb eseti komplexitása  .”

vagy még rövidebben:

  • „Az   algoritmus komplexitása  .”

Példák szerkesztés

Vegyük például egy beszúrásos rendezés elvégzését   számon egy véletlen hozzáférésű gépen. A legjobb eset az algoritmusnak az, amikor a számok már rendezettek, ami   lépést jelent a feladat elvégzésére. A legrosszabb bemenet az algoritmusnak az, amikor a számok fordított sorrendben vannak, ekkor   lépésre van szükség a rendezésükre; következésképpen a legrosszabb eseti időkomplexitása a beszúró rendezésnek  .

Fordítás szerkesztés

  • Ez a szócikk részben vagy egészben a Worst-case complexity című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Források szerkesztés

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest és Clifford Stein. Introduction to Algorithms. Második kiadás. MIT Press és McGraw-Hill, 2001.ISBN 0-262-03293-7. 2.2. fejezet: Analyzing algorithms, 25-27.
  • Oded Goldreich. Computational Complexity: A Conceptual Perspective. Cambridge University Press, 2008.ISBN 0-521-88473-XISBN 0-521-88473-X, 32. o.