Articles

Mi az a válogatás?


Legjobb válasz

A számítástechnikában a A div> rendezési algoritmus olyan algoritmus, amely egy lista elemeit egy bizonyos sorrendbe helyezi. A leggyakrabban használt sorrendek a numerikus sorrend és a lexikográfiai sorrend. A hatékony rendezés fontos más algoritmusok (például keresési és egyesítési algoritmusok) hatékonyságának optimalizálása szempontjából, amelyek megkövetelik, hogy a bemeneti adatok rendezett listákban legyenek. A rendezés gyakran hasznos az adatok kanonizálásához és az ember által olvasható kimenet előállításához is. Formálisan nézve bármely rendezési algoritmus kimenetének két feltételt kell teljesítenie:

  • A kimenet nem csökkenő sorrendben van (minden elem nem kisebb, mint az előző elem a kívánt teljes sorrend szerint);
  • A kimenet a bemenet permutációja (átrendezés, ugyanakkor megtartja az összes eredeti elemet).

Ezenkívül a bemeneti adatokat gyakran tömbben tárolják, amelyek véletlenszerű hozzáférést tesz lehetővé, nem pedig listát, amely csak szekvenciális hozzáférést tesz lehetővé; jóllehet számos módosítást követően számos algoritmus alkalmazható bármelyik adattípusra.

A rendezési algoritmusokat gyakran szónak nevezik, amelyet a „rendezés” szó követ, és nyelvtanilag angolul főnévi kifejezésekként használják, például: A mondatban szereplő példa: “nem hatékony a beszúrási rendezés használata nagy listákon”. A kifejezésbeillesztés rendezése a beszúrás rendezési algoritmusára utal.

Válasz

Milliárd objektum rendezése mindenképpen elérhető távolságban van, ha emlékezetben tudja tartani őket. Szüksége van O-ra (n log n), nem? Ha nem tudja rendezni, hogy mi fér el a számítógép memóriájában (vagy számítógépeiben, ha elosztott rendszere van), és összevonhatja az eredményeket. Az 1990-es évek egyik pontján egy módosított egyesítési sorozatnak volt a világrekordja és egy szuper A processzoronkénti lineáris sebesség felgyorsul.

Valami mást tesz, ha N nagy lesz (vagy valójában valahányszor bármi lassú lesz ésszerű bemenetek esetén), akkor közelebbről megvizsgálja, mire van szüksége valójában.

Miért kell rendezni az objektumokat? Ha csak duplikátumokat keres, sokkal gyorsabb módszerek vannak! Ha az alsó (vagy a legfelső) 5\% -ot szeretné feldolgozni, vannak O (n) algoritmusok, amelyek képesek partíciózni a bejegyzés alapján rendezési pozíció!

Ha a dolgok lassúvá válnak, megnézed, hogy mit csinál, és mielőtt kitalálnád, hogy ez a leggyorsabb algoritmus, bármit is csinálj, kitalálod, hogy ez valóban helyes-e egyáltalán! (Kivétel: ha a gyorsabb „bármi” egy már hibakeresett vékony, akkor csak bepofozhat, akkor jobb, ha ezt megcsinálja … például ha megtalálja Önt Annak tesztelése, hogy egy tömb sokszor tartalmaz-e valamilyen elemet, egyszerűbb lehet a tömböt egy halmazra cserélni, és megnézni, hogy ez most elég gyors-e, és nem érdekli, hogy ha további hat órányi kutatást végezne, akkor a az ellenőrzések, vagy bármi más).

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük