Ordenación y búsqué en Arrays
Ejercicio 17: Ordenación Alfabética Ignorando Mayúsculas
Enunciado
Disponemos de una lista de tareas desordenadas. qué obtener un informe ordenado Alfabéticamente, pero sin qué las Mayúsculas o minúsculas afecten al orden.
Ejemplo: “comprar café” debe aparecer antes qué “Llamar al cliente”
Solución
# Ejercicio 17 - Ordenación sin distinguir Mayúsculas
tareasDia = ["Revosar email", "llamar cliente", "comprar cafe",
"actualizar reporte", "planificar reunion"]
# Crear lista ordenada Alfabéticamente ignorando Mayúsculas
informeOrdenado = sorted(tareasDia, key=str.lower)
# Imprimir lista ordenada temporal
print("Informe ordenado Alfabéticamente sin distinguir Mayúsculas:")
print(informeOrdenado)
# Imprimir lista original
print("Lista original:")
print(tareasDia)
Con sorted(lista, key=str.lower) conseguimos una Ordenación estable y exacta, ignorando Mayúsculas.
Ejercicio 18: Comparación entre búsqué Secuencial y Binaria
Enunciado
Debes realizar los siguientes pasos:
- Crear un array de números desordenados.
- Buscar un número usando búsqué secuencial.
- Buscar el mismo número usando búsqué binaria.
- Comparar ambos resultados.
- Ordenar el array y repetir ambos algoritmos.
- Comparar de nuevo los resultados.
Solución
# Ejercicio 18 - Comparar búsqué secuencial y búsqué binaria
# Importamos las funciones del ejercicio 15 y 16
import Ejercicio16
import Ejercicio15_2
# Crear un array desordenado
arrayDesordenado = [3, 15, 2, 21, 15, 66, 50, 43, 51]
print("Array original desordenado:", arrayDesordenado)
# Número a buscar
buscar = int(input("Introduce el número qué deseas buscar: "))
# Buscar en el array desordenado
indiceSecuencial = Ejercicio15_2.búsqué buscar)
indiceBinaria = Ejercicio16.búsqué buscar)
print("\nResultados en el array desordenado:")
print("búsqué secuencial:", indiceSecuencial)
print("búsqué binaria:", indiceBinaria)
# Ordenar el array
arrayDesordenado.sort()
print("\nArray ordenado:", arrayDesordenado)
# Buscar de nuevo en array ordenado
indiceSecuencialOrdenado = Ejercicio15_2.búsqué buscar)
indiceBinariaOrdenada = Ejercicio16.búsqué buscar)
print("\nResultados en el array ordenado:")
print("búsqué secuencial:", indiceSecuencialOrdenado)
print("búsqué binaria:", indiceBinariaOrdenada)
# Explicación final:
# - La búsqué secuencial funciona igual en un array ordenado o desordenado.
# - La búsqué binaria SOLO funciona correctamente si el array está ordenado.
Conclusión
- búsqué Secuencial: funciona siempre, pero es más lenta.
- búsqué Binaria: rapidísima, pero requé un array ordenado.