¿Cuál es el tiempo de ejecución para un recorrido en orden?

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.

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.

Es lineal. Solo piensa por qué? Cada nodo se visita una vez y eso es todo. Pero necesita tiempo logarítmico para insertar un nuevo elemento en un árbol de búsqueda binario, suponiendo que esté equilibrado. Por lo tanto, es [matemáticas] O (n log n) [/ matemáticas].

En otras palabras, el costo de construir el árbol “domina” el costo del recorrido transversal. Es decir [matemáticas] O (n log n) + O (n) = O (n log n). [/ Math]

Perdón por el abuso de la notación. Pero creo que es intuitivo.

El recorrido transversal es solo un paseo por el árbol. Visita cada nodo exactamente una vez, por eso la complejidad es [matemática] O (n) [/ matemática].

El árbol de búsqueda binario mantiene una estructura tal que el recorrido transversal imprime los nodos en orden ordenado. Es el árbol que mantiene esa estructura. El recorrido transversal solo hace un paseo por el árbol.

Dada una matriz ordenada, ¿cuál es la complejidad de imprimir sus elementos en orden ordenado?
Es [matemática] O (n) [/ matemática] porque solo es necesario iterar sobre la matriz sin preocuparse por cómo se ordenó la matriz en primer lugar.

More Interesting

¿Qué es el tipo de selección?

¿Escribir un programa de CA para convertir un número en palabras de moneda?

¿Cuáles son las capacidades máximas de almacenamiento de las estructuras de datos (pila, cola, listas enlazadas)?

¿Se necesitarán estructuras de datos y algoritmos para los ingenieros de diseño analógico o EDA?

¿Cómo se debe aprender la codificación, haciendo algoritmos, desde el nivel básico, dado que no tiene experiencia en codificación? (especialmente desde el punto de vista de la colocación y también dado el hecho de que me queda un año para que comience mi temporada de colocación).

¿Cuál es la diferencia entre los algoritmos Reheap up y Reheap down?

¿Es posible aproximar el comportamiento asintótico de un algoritmo dado su tiempo de ejecución?

Slender: Las ocho páginas: ¿cómo funciona el algoritmo para el movimiento de Slender?

¿La programación competitiva se trata más de pensar o de implementar (modificar) algoritmos conocidos?

¿Cuál es el tiempo de ejecución esperado de un algoritmo que genera aleatoriamente cadenas únicas de longitud D?

¿Cómo funciona el algoritmo de sugerencia de seguimiento de Twitter?

Cómo implementar Dropconnect usando TensorLayer

¿Cómo funcionan los algoritmos de Google en los motores de búsqueda?

¿Cómo resolver la pregunta 1 de ZIO2015? ¿Es un enfoque de programación dinámica?

¿Cuál sería un algoritmo eficiente para ordenar millones de líneas de cadenas / enteros en un archivo?