Estoy escaneando una fuente de datos de gran tamaño, actualmente cerca de 8 millones de entradas, la extracción en cadena por entrada, lo que yo quiero en orden alfabético.
Currenlty me los puso en una matriz a continuación, ordenar un índice a ellos con qsort()los que trabaja muy bien.
Pero por curiosidad Estoy pensando en lugar de insertar cada cadena en una estructura de datos que los mantiene en orden alfabético, ya que las escanea desde la fuente de datos, en parte por la experiencia de emlplementing uno, en parte porque se sentirá más rápido sin tener que esperar por la clase para completar después de finalizada la exploración (-:
¿Qué estructura de datos sería el más sencillo de implementar en C?
ACTUALIZAR
Para aclarar, las únicas operaciones que necesito para llevar a cabo se inserta un elemento y el vertido del índice cuando se hace, por lo cual quiero decir para cada elemento en el orden original volcar un entero que representa el orden en que se encuentra en después de la clasificación.
RESUMEN
- La forma más fácil de implementar son árboles binarios de búsqueda.
- Autobalanceo árboles binarios son mucho mejor, pero no trivial de implementar.
- La inserción puede realizarse de forma iterativa, pero el recorrido en orden para volcar el resultado y después de la orden de recorrido para borrar el árbol cuando se hace tanto requiere ni recursividad o un pila explícita.
- Sin implementar equilibrio, carreras de entrada ordenada resultarán en el peor caso degenerado que es una lista enlazada. Esto significa árboles profundas que afectan gravemente a la velocidad de la operación de inserción.
- Arrastrando los pies ligeramente la entrada puede romper entradas ordenadas de manera significativa y es más fácil de implementar que el equilibrio.













