Hola, ¿se puede usar la busqueda binaria pero para una lista de strings? Por ejemplo, si tengo la lista [‘Juan’, ‘Karla’,‘Jorge’,‘Agustin...

Pregunta de la clase:
Búsqueda Binaria
Juan Carlos Hernández

Juan Carlos Hernández

Pregunta
studenthace 4 años

Hola, ¿se puede usar la busqueda binaria pero para una lista de strings? Por ejemplo, si tengo la lista

[‘Juan’, ‘Karla’,‘Jorge’,‘Agustin’] buscar la cadena ‘Juan’

2 respuestas
para escribir tu comentario
    Josue Granados

    Josue Granados

    studenthace 4 años

    Hola Juan! Si, si se puede. Solo tendrías que modificar un poco el algoritmo y aplicar antes uno de ordenamiento. Esos temas los veremos en el curso de OOP y estructuras de datos con Python. Pero te dejo aqui la manera de hacerlo, ¡pruebalos en tu maquina!

    abecedario = ['a','b','c','d','e'] def busqueda_binaria(objetivo): bajo = 0 alto = len(abecedario) - 1 centro = (alto + bajo) // 2 while alto >= bajo: if abecedario[centro] == objetivo: return True elif abecedario[centro] < objetivo: bajo = centro + 1 else: alto = centro - 1 centro = (alto + bajo) // 2 return False letra = input('Dame un letra: ') if busqueda_binaria(letra): print(f'Si se encuentra la letra {letra}') else: print(f'lo sentimos, {letra} no se encuentra')

    o de manera recursiva:

    #busqueda binaria version recursiva abecedario = ['a','b','c','d','e'] def busqueda_binaria(objetivo,lista, bajo, alto): if alto >= bajo: centro = (alto + bajo) // 2 if lista[centro] == objetivo: return True elif lista[centro] < objetivo: return busqueda_binaria(objetivo, lista, centro + 1, alto ) else: return busqueda_binaria(objetivo, lista, bajo, centro - 1) return False letra = input('Dame un letra: ') if busqueda_binaria(letra,abecedario, 0, len(abecedario) - 1): print(f'Si se encuentra la letra {letra}') else: print(f'lo sentimos, {letra} no se encuentra')
    Omar Daniel Centeno

    Omar Daniel Centeno

    studenthace 4 años

    Una búsqueda binaria necesita una lista ordenada de objetos, una lista de strings no tiene un orden particular por lo que no podrías aplicar las operaciones de suma, división que se aplican a una lista de enteros. Al menos desde lo que he aprendido no me parece que sea posible.

Curso de Pensamiento Computacional con Python

Curso de Pensamiento Computacional con Python

Comienza tu camino en el desarrollo de software con el lenguaje de programación Python. Entiende la estructura de pensamiento necesaria para resolver problemas en programación. Domina las estructuras de control para crear soluciones. Conoce las características de Python que te permiten reutilizar código. Prueba tu código e implementa correcciones y mejoras.

Curso de Pensamiento Computacional con Python
Curso de Pensamiento Computacional con Python

Curso de Pensamiento Computacional con Python

Comienza tu camino en el desarrollo de software con el lenguaje de programación Python. Entiende la estructura de pensamiento necesaria para resolver problemas en programación. Domina las estructuras de control para crear soluciones. Conoce las características de Python que te permiten reutilizar código. Prueba tu código e implementa correcciones y mejoras.