Ordenación y búsqué en Arrays

Publicado por pjimpin1207

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.