Pregunta 25
Basándose en la búsqueda binaria (donde se asume que se tiene un arreglo previamente
ordenado de manera ascendente), se quiere tener un programa que entregue la posición
de un arreglo donde se encuentra el elemento buscado. Para esto, considera un arreglo de
enteros llamado lista
y de largo largo
y un elemento e
a buscar. Además, considera
que la función int()
transforma un número no entero a uno entero. Por ejemplo, int(5.8)
retorna 5
. El código que realiza lo anterior es el siguiente:
inicio = 0
fin = largo
indice = -1
while CONDICION:
medio = int((inicio + fin)/2)
if lista[medio] == e:
indice = medio
inicio = fin + 1
else:
if lista[medio] < e:
inicio = medio + 1
else:
fin = medio - 1
¿Qué debería ir en CONDICION
para que el código anterior funcione correctamente?
a) fin < largo
b) inicio < 0
c) fin == medio
d) inicio <= fin
Solución propuesta
Aún no hay solución propuesta 🥲
Si este ejercicio tiene una solución, podría estar incorrecta. Si deseas proponer una solución alternativa, manda tu solución abriendo
un Pull Request en el repositorio de GitHub con el archivo
.mdx
correspondiente.