Aclaremos un poco de lenguaje aquí.
Primero, un recorrido en orden es un algoritmo que aplica a una estructura de datos de árbol (generalmente un árbol binario). Este algoritmo lleva tiempo [matemático] O (n) [/ matemático].
Creo que lo que te estás perdiendo es que el otro paso en tu razonamiento es la clasificación. La clasificación es un problema diferente . Si planea utilizar un árbol binario para resolver el problema de clasificación, primero debe construir el árbol. Suponiendo que el árbol está equilibrado, cada inserción en el árbol toma [math] O (\ log {n}) [/ math] tiempo, por lo tanto, insertar todos los miembros [math] n [/ math] en el árbol toma [math] O ( n \ log {n}) [/ math] hora.
- ¿Hay algún buen sitio para aprender algoritmos / conceptos de programación todos los días (similar a la pregunta SAT del día)?
- ¿Cuándo podrán los algoritmos de detección de imágenes filtrar imágenes ofensivas de manera confiable?
- ¿Cuál es la ecuación general para calcular la probabilidad de encontrar una cadena de longitud N en una cadena M más larga de caracteres aleatorios, cada uno elegido de {AZ}?
- ¿Hay alguna aplicación práctica de algoritmos que calculen los equilibrios de Nash?
- ¿Cuál es el orden de lectura de estructuras de datos y algoritmos para un aprendizaje fluido?
Suponiendo que mantiene un árbol con las propiedades que esperamos en un árbol de búsqueda binario, puede usar un recorrido en orden para resolver el problema de clasificación. Simplemente inserte cada elemento en el árbol, luego haga un recorrido transversal en el árbol. A medida que lea a cada miembro, cópielos en una nueva matriz / lista / etc … en el orden dado por el recorrido. Devuelve esto y listo. Suponiendo lo que dije anteriormente, toma [matemáticas] O (n \ log {n}) [/ matemáticas] tiempo en general para hacer esto en el peor de los casos.
Por lo tanto, no hay conflicto.