Operaciones Avanzadas con Arrays

Publicado por pjimpin1207

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.")