DEV Community

Carine Neris
Carine Neris

Posted on • Edited on

5 1

Precisamos Falar Sobre Algoritmos: Pesquisa Binária

A pesquisa binária é um dos muitos algoritmos de busca, ele recebe como entrada uma lista ordenada de elementos e o elemento que desejamos buscar, se o elemento buscado estiver na lista, recebemos como resposta a posição que aquele elemento se encontra, caso contrário a pesquisa retorna None. É preciso lembrar que pesquisa binária só funciona se a lista estiver ordenada, isso é necessário pois o elemento é buscado de forma ordenada dentro da lista. ex: temos uma lista de elementos dentro de um array [1,2,3,4,5,6,7,8,9,10] e queremos saber se o elemento 8 faz parte da lista, a primeira coisa que o algoritmo faz é partir a lista ao meio e verificar se o elemento é maior ou menor do que o elemento do meio, que seria 5 e no nosso exemplo ele seria maior então todos os elementos para trás seriam ignorados e a busca continuaria do numero 6 em diante.

Implementação de um algoritmo de busca binária usando Python

def pesquisa_binaria(lista, elemento):
    esquerda = 0
    direita = len(lista) - 1
    while esquerda <= direita:
        meio = (esquerda + direita) // 2
        chute = lista[meio]
        if chute == elemento:
            return meio
        elif chute > elemento:
            direita = meio - 1
        else:
            esquerda = meio + 1
    return None 
Enter fullscreen mode Exit fullscreen mode

Image of Datadog

How to Diagram Your Cloud Architecture

Cloud architecture diagrams provide critical visibility into the resources in your environment and how they’re connected. In our latest eBook, AWS Solution Architects Jason Mimick and James Wenzel walk through best practices on how to build effective and professional diagrams.

Download the Free eBook

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay