Upload
daniela-salcido
View
218
Download
3
Embed Size (px)
DESCRIPTION
dd
Citation preview
Daniela Salcido Quintana
La búsqueda binaria es un ejemplo de la complejidad de O (log n). Digamos que los nodos en el nivel
inferior del árbol en la figura 1 representan los elementos de alguna colección ordenada. La
búsqueda binaria es un algoritmo de divide y vencerás, y el dibujo muestra cómo vamos a necesitar
(como máximo) 4 comparaciones para encontrar el registro que buscamos en este conjunto de
datos 16 artículo.
Supongamos que tuvimos en su lugar un conjunto de datos con 32 elementos. Continuar el dibujo
de arriba para encontrar que ahora vamos a necesitar 5 comparaciones para encontrar lo que
estamos buscamos, como el árbol sólo ha crecido un nivel más profundo cuando multiplicamos la
cantidad de datos. Como resultado, la complejidad del algoritmo se puede describir como un orden
logarítmico.
La última afirmación implica que, dado que la clasificación tiene n elementos Ω (n lg n) el tiempo en
el peor caso en el modelo de comparación, cualquier algoritmo basado en la comparación para
construir un árbol binario de búsqueda de la lista arbitraria n elementos de toma Ω (n lg n) tiempo
en el peor de los casos.
Podemos demostrar la validez de este argumento (en caso de que usted está pensando en vencer a
Ω (n lg n) obligado) de la siguiente manera: dejar que c (n) ser el peor de los casos el tiempo de
funcionamiento para la construcción de un árbol binario de un conjunto de n elementos. Dado un n
-nodos BST, el paseo fin de en el árbol de salida a las teclas en el orden establecido. Algoritmo de
ordenación Desde el peor de los casos el tiempo de cualquier cálculo acumulado basado es Ω (n lg
n), tenemos
c(n) + O (n) = Ω (n lg n)
Por lo tanto, c (n) = Ω (n lg n).
Algoritmo de Búsqueda
• BÚSQUEDA (NODO, INFOR)
• {El algoritmo localiza un nodo en un árbol binario de búsqueda. NODO es una variable de tipo
puntero que apunta a la raíz del árbol. INFOR es una variable que contiene la información que se
desea localizar en el árbol. Cabe aclarar que la primera vez la variable NODO no puede ser vacía.}
• Si INFOR < NODO^.INFO entonces
• Si NODO^.IZQ = NILL entonces
• Escribir “El nodo no se encuentra en el árbol”
• Sino
• BÚSQUEDA (NODO^.IZQ, INFOR) {Llamada recursiva}
• Fin Si
• Sino
• Si INFOR > NODO^.INFO entonces
• Si NODO^.DER = NILL entonces
• Escribir “El nodo no se encuentra en el árbol”
• Sino
• BÚSQUEDA (NODO^.DER, INFOR) {Llamada recursiva}
• Fin Si
• Sino
• Escribir “El nodo se encuentra en el árbol”
• Fin Si
• Fin Si
• Fin del algoritmo