UNIVERSIDAD TECNICA EN PARTICULAR DE LOJA
Algoritmos de BÚSQUEDA en PYTHON

BÚSQUEDA en una lista

El problema es que para poder aplicar la función index() debemos estar seguros que el valor a buscar esta en la lista y para averiguar eso, Python nos provee de un operardor in, probamos a ver que pasa:

BÚSQUEDA EN UNA LISTA
Probamos la función busqueda_con_index():
BÚSQUEDA lineal
En el tipo de búsqueda lineal se compara uno a uno los elementos de la lista con el valor de x, y retornar el valor de la posición donde lo encontramos en caso de encontrarlo.
Si llegamos al final de la lista sin haber salido antes de la función es porque el valor de x no está en la lista, y en ese caso retornamos -1. En esta solución necesitamos una variable i que cuente en cada momento en qué posición de la lista estamos parados. Esta variable se inicializa en 0 antes de entrar en el ciclo y se incrementa en 1 en cada una de las posiciones que se recorre.
El programa nos queda entonces como se muestra en el Código 8.2.
CÓDIGO 8.2 BUSQUEDA_LINEAL.PY: FUNCIÓN DE BÚSQUEDA LINEAL
CÓDIGO 8.2 BUSQUEDA_LINEAL.PY: FUNCIÓN DE BÚSQUEDA LINEAL 
# y AHORA lo PROBAMOS

¿Cuántas comparaciones hace este programa?
Ahora podemos analizar el texto de
BUSQUEDA_LINEAL:
- La
del código es un ciclo que recorre uno a uno los elementos de la lista, y en el cuerpo de ese ciclo, en la línea 20 se compara cada elemento con el valor buscado. En el caso de encontrarlo (línea 21) se devuelve la posición.(línea 16) - Si
el valor no está en la lista se recorrerá la lista entera, haciendo una
comparación por elemento.
Es decir que si el valor está en la posición p de la lista se hacen p comparaciones, y si el valor no está se hacen tantas comparaciones como elementos tenga la lista.
La hipótesis es: Si la lista crece, la cantidad de comparaciones para encontrar un valor arbitrario crecerá en forma proporcional al tamaño de la lista.
Algoritmos de busqueda en Python
By Krlitos Hidalgo
Algoritmos de busqueda en Python
Información sobro los algoritmos de búsqueda en el lenguaje de Python
- 922