Jsem skenování velký zdroj dat, v současné době asi 8 milionů záznamů, extrakce na provázku na vstupu, které chci v abecedním pořadí.
Currenlty Dal jsem je do pole a pak třídit index se mezi ně qsort(), která funguje dobře.
Ale ze zvědavosti Přemýšlím namísto vkládání každý řetězec do datové struktury, která je udržuje v abecedním pořadí, jak jsem naskenovat je z datového zdroje, částečně pro zkušenostech emlplementing jednu, částečně proto, že se bude cítit rychleji bez čekání na druh dokončit po skenování dokončil (-:
Co datová struktura by nejpřímější implementovat v C?
AKTUALIZACE
K objasnění, jediné operace musím provádět vkládání položku a dumping index, když se to dělá, čímž mám na mysli pro každou položku v původním pořadí výpisu celé číslo představující pořadí, v jakém je v po roztřídění.
SOUHRN
- Nejjednodušší implementovat jsou binární vyhledávací stromy.
- Self vyvážení binární stromy jsou mnohem lepší, ale netriviální realizovat.
- Vložení může být provedeno opakovaně, ale in-pořadí průchod pro vypsání výsledky a post-objednat traversal pro vymazání strom, když udělal obě vyžadují buď rekurzi nebo explicitní stack.
- Bez provedení vyvážení, budou běhy objednané vstup vést k degenerované nejhorším případě, který je provázaný seznam. To znamená, že hluboké stromy, které vážně ovlivnit rychlost vložit operace.
- Mírně míchání vstup může rozbít objednat vstup výrazně a je jednodušší implementovat toto vyvážení.













