Je numérisation d'une grande source de données, actuellement environ 8 millions d'entrées, l'extraction de chaîne par entrée, que je veux dans l'ordre alphabétique.
Currenlty Je les ai mis dans un tableau puis trier un index pour les utiliser qsort()qui fonctionne très bien.
Mais par curiosité je pense à la place d'insérer chaque chaîne dans une structure de données qui les maintient dans l'ordre alphabétique que je les numériser à partir de la source de données, en partie pour l'expérience de emlplementing une, en partie parce qu'il se sentira plus vite sans attendre le genre pour terminer après l'analyse terminée (-:
Quelle est la structure des données serait la plus simple à mettre en œuvre en C?
METTRE À JOUR
Pour clarifier, les seules opérations dont j'ai besoin d'effectuer sont un élément et insèrent le dumping l'indice quand il est fait, je veux dire pour chaque élément dans l'ordre d'origine vider un entier représentant l'ordre qu'il est après le tri.
RÉSUMÉ
- Les plus faciles à mettre en œuvre sont des arbres binaires de recherche.
- arbres binaires auto équilibrage sont beaucoup mieux, mais non négligeable à mettre en œuvre.
- L'insertion peut être fait itérativement, mais dans l'ordre Traversal pour les résultats et le dumping post-ordre Traversal pour la suppression de l'arbre lorsque vous avez terminé les deux nécessitent soit récursion ou une pile explicite.
- Sans la mise en œuvre d'équilibrage, pistes d'entrée ordonnée entraînera le pire des cas dégénéré qui est une liste chaînée. Cela signifie des arbres profonds qui ont un impact fortement la vitesse de l'opération d'insertion.
- Traînant l'entrée légèrement peut briser de manière significative l'entrée ordonnée et est plus facile à mettre en œuvre que l'équilibrage.













