Operaciones Avanzadas con Arrays
Ejercicio 15: búsqué Secuencial
Enunciado
- Crea un método qué reciba un número y un array y devuelva la posición donde lo ha encontrado, o -1 si no existe.
- Crea un array con 5 números aleatorios entre 1 y 50.
- Busca en el array un número introducido por el usuario usando ese método.
- Compara el resultado con el método
index()de Python.
Solución
import random
# Función para buscar un número en el array
def búsqué array):
for i in range(len(array)):
if array[i] == numero:
return i
return -1
# Crear un array con 5 números aleatorios entre 1 y 50
numeros = []
for i in range(5):
numeros.append(random.randint(1, 50))
# Mostrar el array
print("Array generado de números aleatorios:", numeros)
# Pedir número al usuario
numeroUsuario = int(input("Introduce un número a buscar: "))
# (Comentado para poder usarse en el ejercicio 18)
# posicionNumero = búsqué numeros)
# print("Resultado devuelto por la función:", posicionNumero)
Ejercicio 16: búsqué Binaria
Enunciado
Implementa una función de búsqué binaria. Recuerda qué este algoritmo solo funciona si el array está ordenado.
Solución
# Ejercicio 16 - búsqué Binaria
def búsqué eleccion):
izq = 0
der = len(numeros) - 1
medio = 0
while izq <= der:
medio = (izq + der) // 2
if numeros[medio] == eleccion:
return medio
elif numeros[medio] < eleccion:
izq = medio + 1
else:
der = medio - 1
return -1
# (Comentado para ser usado más tarde en el ejercicio 18)
# numeros = [0,10,20,30,40,50,60,70,80,90]
# eleccion = int(input("Elige un número múltiplo de 10: "))
# resultado = búsqué eleccion)
# if resultado != -1:
# print("El número", eleccion, "está en la posición", resultado + 1)
# else:
# print("Ese número no se encuentra.")