Comparación de búsqueda Binaria, Ternaria, N-aria

BUSQUEDA BINARIA
Este método de búsqueda requiere que los elementos se encuentren almacenados en una estructura (arreglo, archivo, etc.) de forma ordenada, es decir clasificados de una determinada manera. En general, si la lista esta ordenada se puede acortar el tiempo de búsqueda, realizando cuanto mucho log n / log 2  comparaciones de registros. En cada ciclo de comparaciones el número de elementos se reduce a la mitad, factor de 2. Por lo tanto, el número medio de comparaciones que se realizarán con este método es: (1+(log n/log 2))/2
La búsqueda binaria consiste en comparar el elemento buscado con el que ocupa en la lista la posición central y, según sea igual, mayor o menor que el central, para la búsqueda con éxito, o bien, repetir la operación considerando una sub-lista formada por los elementos situados entre el que ocupa la posición "central +1" y el ultimo, ambos inclusive, o por lo que se encuentran entre el primero y el colocado en "central -1", también ambos inclusive. El proceso termina con búsqueda en fracaso cuando la sub-lista de búsqueda se quede sin elementos





BUSQUEDA TERNARIA
Análogamente a la búsqueda binaria consiste en comparar elementos, ahora con dos centros, uno izquierdo y uno derecho. Luego se debe analizar en qué sub-lista se encuentra el dato buscado, si en la derecha (centro derecho, final), izquierda (principio, centro izquierdo), o central (centro izquierdo, centro derecho), y se repetirá hasta encontrar el dato o acabar las posibilidades, demostrando que el dato no se encuentra en la estructura analizada.




Codigo en C (Busqueda Ternaria)


BUSQUEDA N-ARIA
Al igual que en la búsqueda binaria y ternaria este método de búsqueda se diferencia de las ya mencionadas únicamente en, tomar un número “n” para sub-dividir la lista en “n” partes, a fin de buscar el valor deseado en una lista de “m” elementos.
Siempre basándose en la formula (log m / log n) para obtener la cantidad máxima de particiones/iteraciones hechas a las sub-lista, por el programa para encontrar el valor indicado. Dando por hecho, que el elemento buscado existe dentro de la lista.



Codigo en C (Busqueda N-aria)

Comparación entre métodos:
Considerando una cantidad de 1.000.000 de elementos dentro de una lista, se realizó un cuadro entre el número de particiones a realizar y su cantidad máxima de iteraciones del método.



Bibliografía:
Joyanes Aguilar, L. and Sánchez García, L. (2006). Programación en C++. Madrid: McGraw-Hill Interamericana de España.

Entradas más populares de este blog

Aplicación de estrategias de recorrido de grafos en la vida real

Tipo de datos abstractos - Ejemplo calculadora en C