UNIVERSIDAD TECNICA EN PARTICULAR DE LOJA

La Universidad Católica de Loja

Algoritmos de BÚSQUEDA en PYTHON


Programación de Algoritmos

Nombre: Carlos Xavier Hidalgo Paredes

BÚSQUEDA en una lista

Uso del comando index()
Probamos esa solución para  ver qué pasa:

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

Ejercicio de index()
Si llamamos a la función index(), y el resultado de in  es verdadero nos arrojara el valor, y devolvemos -1 cuando el resultado de in es falso.

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 


# y AHORA lo PROBAMOS 


¿Cuántas comparaciones hace este programa?

Ahora podemos analizar el texto de 

BUSQUEDA_LINEAL:

  • La 
    (línea 16) 
     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.
  • 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.

 

Made with Slides.com