A szerver PHP-ben generál egy véletlen tömböt, majd az ÖSSZES kiválasztott algoritmussal (egyszerre legfeljebb 6) rendezi - nézd meg egymás mellett, mennyire eltérően dolgozik tizenegy rendezés ugyanazon a bemeneten.
-
Az algoritmusok időbonyolultságát ("mennyire lassul, ahogy nő a bemenet") a Big O jelöléssel írjuk le - ez a lépésszám növekedésének NAGYSÁGRENDJÉT mutatja, nem a pontos futásidőt.
Az O(n²) ("kvadratikus") azt jelenti, hogy a bemenet megduplázásával a lépésszám kb. négyszereződik - ez teszi a buborékrendezést nagy tömbön gyakorlatilag használhatatlanná.
Az O(n log n) ("linearitmikus") ennél lényegesen jobb: a bemenet megduplázásával a lépésszám kicsivel több, mint duplázódik - a gyors-, összefésülő- és kupacrendezés is ebbe az osztályba tartozik, ezért skálázódnak jól nagy adatmennyiségre.
Fontos, hogy az elméleti bonyolultság nem minden: a gyakorlatban a gyorsrendezés a legtöbb valós bemeneten gyorsabb az összefésülő rendezésnél, annak ellenére, hogy legrosszabb esetben O(n²)-re lassulhat - ezt a fenti vizualizáció is jól szemlélteti.
A stabil rendezés az egyenlő kulcsú elemek eredeti sorrendjét megtartja - ez fontos, ha többszörösen rendezünk (pl. előbb név, majd kor szerint). Az összehasonlító rendezések alsó korlátja O(n log n); a radix rendezés ezt úgy kerüli meg, hogy nem hasonlít össze, hanem az elemek számjegyeit használja.
Ez az oldal Google Analytics-et használ a látogatottság méréséhez. Ehhez a hozzájárulásod szükséges - részletek az adatvédelmi tájékoztatóban. Adatvédelmi tájékoztató