Legkönnyebben megvalósítható az online rendezve adatstruktúrát C

szavazat
1

Én szkennelés egy nagy adatforrás, jelenleg mintegy 8 millió bejegyzést, kitermelésére a húr egy bejegyzést, amit szeretnék alfabetikus sorrendben.

Currenlty tettem őket egy tömbben majd a sort egy indexet őket használni qsort(), ami jól működik.

De kíváncsiságból Gondolok helyett behelyezése minden húr egy adatstruktúra, amely fenntartja ezeket ábécé sorrendben, ahogy őket beolvasni az adatforrásból, részben a tapasztalat emlplementing egyik, részben azért, mert úgy érzi, gyorsabb nélkül várakozás rendezés befejezését követően a vizsgálat befejeztével (-:

Milyen adatokat struktúra lenne a legegyszerűbb, hogy végre a C?

UPDATE

Annak tisztázása, az egyetlen művelet azt kell végrehajtani vannak illesztve és a dömping az index, ha ez megtörtént, ami alatt azt értem minden egyes tételre, az eredeti sorrendben billenő értéke képviselő érdekében ez a válogatás után.

Összefoglaló

  • A legkönnyebben megvalósítható a bináris keresés fák.
  • Önkiegyensúlyozást bináris fák sokkal jobb, de nem triviális, hogy végre.
  • Beillesztés lehet tenni iteratív de rendelésre bejárás dömping az eredmények és az azt követő sorrendben bejárás törlésére a fa, ha kész mindkét igényel sem rekurzív vagy explicit verem.
  • Végrehajtása nélkül kiegyensúlyozás, fut a megrendelt bemenet eredményeként a degenerált legrosszabb esetben, ami egy láncolt lista. Ez azt jelenti, mély fák súlyosan befolyásolhatja a sebességet a betét működését.
  • Csoszog a bemeneti kissé lehet szakítani rendelt bemenet és jelentősen könnyebb megvalósítani, hogy a kiegyenlítő.
A kérdést 11/04/2011 18:23
a forrás felhasználó
Más nyelveken...                            


4 válasz

szavazat
3

Bináris keresés fák. Vagy önkiegyensúlyozó keresési fák. De ne várják azokat, hogy gyorsabb, mint egy megfelelően végrehajtott dinamikus tömb, mivel tömbök sokkal jobb településen hivatkozási mint mutató szerkezetek. Továbbá, kiegyensúlyozatlan BSTs lehet „menni lineáris”, így a teljes algoritmus válik O ( n ²), akárcsak quicksort.

Válaszolt 11/04/2011 18:24
a forrás felhasználó

szavazat
0

Lehet végre gyorsabb rendezési algoritmus, mint nekünk Timsort vagy más rendezési algoritmusok egy n kapcsolódás (n) legrosszabb esetben, és csak keressük meg a bináris keresés óta gyorsabb, ha a lista.

Válaszolt 11/04/2011 18:29
a forrás felhasználó

szavazat
0

akkor megnézzük Trie adatstruktúra wikilink azt hiszem, ez szolgál majd, amit akar

Válaszolt 18/04/2011 08:20
a forrás felhasználó

szavazat
2

Ön már használja a legjobb megoldás. Rendezze a végén lesz sokkal olcsóbb, mint a fenntartása egy internetes rendezve adatszerkezet. Lehet kapni ugyanazt O (logN) a rb-fát, de az állandó lesz sokkal rosszabb, nem is beszélve jelentős helyet fölött.

Igaz, AVL fák és rb-fák sokkal egyszerűbben kivitelezhető, ha nem kell, hogy támogassa a törlést. Balra hajló rb fa elfér 50 vagy még sornyi kódot. Lásd http://www.cs.princeton.edu/~rs/talks/LLRB/ (által Sedgewick)

Válaszolt 19/04/2011 05:31
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more