Scanez o sursă mare de date, în prezent, aproximativ 8 milioane de intrări, extragerea pe șir de caractere per intrare, pe care vreau în ordine alfabetică.
Currenlty le - am pus într - o matrice apoi sortați un index pentru a le folosind qsort()care funcționează bine.
Dar, din curiozitate mă gândesc în loc de a introduce fiecare șir de caractere într-o structură de date care le menține în ordine alfabetică după cum le-am scana de la sursa de date, în parte pentru experiența emlplementing unul, în parte pentru că se va simți mai repede, fara a astepta pentru sortare pentru a finaliza după scanare a finalizat (-:
Ce structură de date ar fi cea mai simplă de a pune în aplicare în C?
ACTUALIZAȚI
Pentru a clarifica, singurele operații care am nevoie pentru a efectua sunt introducerea unui element și dumping indicele atunci când este făcut, prin care mă refer pentru fiecare element, în ordinea inițială arunca un număr întreg care reprezintă ordinea în care aceasta se află în după sortare.
REZUMAT
- Cel mai simplu să pună în aplicare sunt arbori de căutare binare.
- Autoechilibrare arbori binari sunt mult mai bine, dar netrivială să pună în aplicare.
- Inserția se poate face iterativ, dar în ordine traversal pentru dumping rezultate și post-comandă traversal pentru ștergerea arborelui atunci când se realizează atât necesită fie de recurență sau o stivă explicită.
- Fără echilibrare de punere în aplicare, se execută de intrare comandate va avea ca rezultat degenerate cel mai rău caz, care este o listă legată. Acest lucru înseamnă copaci adânci care au un impact grav viteza operației de inserție.
- Amestecare de intrare ușor poate rupe comandat de intrare în mod semnificativ și este mai ușor să pună în aplicare această echilibrare.













