¿Cuál es la complejidad temporal del uso de un árbol de búsqueda binario para ordenar los números de un grupo?

Si solo le dan un grupo de números, primero tendría que construir un bst.

Si el bst no está equilibrado, la inserción toma tiempo lineal (O (n)) en el peor de los casos. Entonces, insertar n números significaría (1 + 2 + 3 + 4 + ……. + N-1) operaciones que hacen que la complejidad O (n ^ 2).

Sin embargo, los árboles de búsqueda binarios equilibrados como el árbol rojo-negro o el árbol AVL que tienen un tiempo de inserción promedio de O (logn) pueden reducir bastante la complejidad. Entonces la inserción podría hacerse en O (nlogn). Pero en este caso, tendría que hacer los cambios necesarios en el código para garantizar que bst permanezca equilibrado.

Luego, la siguiente tarea sería atravesar el árbol con O (n) complejidad.

Con cuál debe ir depende del rango de n. Si n toma valores pequeños, no hay una diferencia apreciable entre logn y n ^ 2. Pero en casos del mundo real donde n es bastante grande, es mejor usar un árbol de búsqueda binario equilibrado.

Esto depende de si se le da el árbol de búsqueda binario, o primero debe construirlo.

Si se le da el árbol, entonces es simple como leer los elementos del árbol en un primer recorrido profundo del árbol de búsqueda binario. Esta es una operación de complejidad de tiempo [matemática] O (n) [/ matemática].

Si debe construir el árbol antes de ordenar, ¡el peor de los casos ocurre cuando se le dan números que ya están ordenados! En este caso, debemos insertar cada elemento en el árbol y tomaremos [matemáticas] O (1 + 2 + 3 … n) = O (n ^ 2) [/ matemáticas] comparaciones. Luego debemos leer los números ordenados del árbol, pero como lo demostré anteriormente, esto tiene una complejidad lineal de tiempo.

More Interesting

Para el siguiente algoritmo sea n = 0. Para cada persona en la sala, establezca n = n + 1 '. ¿Dónde exactamente explica el algoritmo que compones n?

¿Me pueden ayudar a aprender estructuras de datos y algoritmos?

¿Es la composición musical un problema NP?

¿Puedo diseñar una estructura de datos tipo pila que haga popMin () en tiempo O (1)?

¿A qué año de pregrado está destinado MIT 6.006 Introducción a Algoritmos (primer año, segundo año, etc.)?

¿Cuál es el significado de 'orden de crecimiento' en el análisis de algoritmos y cómo podemos encontrar el orden de crecimiento de un algoritmo dado?

¿Cómo se crean los algoritmos y para qué se utilizan?

¿Estudiar algoritmos mejorará mis habilidades cotidianas de toma de decisiones / resolución de problemas?

¿Hay algún algoritmo de clasificación que sea sustancialmente más rápido que QuickSort?

¿Cuál es el número más pequeño [matemática] N [/ matemática] tal que [matemática] N \ equiv 2 \ mod 3, [/ matemática] [matemática] N \ equiv 1 \ mod 5, [/ matemática] [matemática] N \ equiv 4 \ mod 7 [/ matemáticas]?

¿Cuál es el mejor algoritmo de cifrado real utilizado en el almacenamiento de datos basado en hardware?

¿Cuánto estrés se le da a los algoritmos y las estructuras de datos en el curso de pregrado en CMI? ¿Se enseña programación competitiva allí?

¿Cuáles son algunas características de los datos de imágenes faciales que se pueden utilizar para alimentar los algoritmos de aprendizaje automático?

¿Cómo se puede resolver una variante del problema 3-SAT en tiempo lineal usando divide y vencerás?

Cómo comenzar a aprender algoritmos de reconocimiento de voz