2.9 KiB
2.9 KiB
Pesquisa Binária
A Pesquisa Binária(em inglês Binary Search) é um algoritmo de pesquisa que encontra a posição de um valor dentro da matriz.
- Complexidade temporal: O(log n)
- Complexidade de espaço: O(1)
- Aplicações: Uma melhor aplicação quando os dados já estão organizados e temos bastantes
- Nome do fundador: P.F. Windley, A.D. Booth, A.J.T. Colin, e T.N. Hibbard
- É um dos algoritmos de pesquisa mais populares e usado diariamente.
Passos
- Encontrar o elemento do meio da matriz
- Verificar se o elemento que estamos a procurar é igual ao elemento do meio e se sim, retornar o índice e acabar o programa/função.
- Se o 2º passo não foi verificado, testamos se o elemento a procurar é menor que o elemento do meio, se sim voltamos para o passo 1 e usamos entre o início do matriz e o índice do elemento do meio -1.
- Se o 3º passo não foi verificado, testamos se o elemento a procurar é maior que o elemento do meio, se sim voltamos para o passo 1 e usamos entre o índice do elemento do meio +1 até ao último índice da matriz.
- Percorrer o ciclo até o índice inicial ser menor do que o índice final
- Se o ciclo acabar e nenhum dado for encontrado retornar -1, que significa que o elemento a procurar não existe na matriz dada.
Nota: A matriz deve estar organizada de forma crescente.
Exemplos
Dados de Entrada: 10,20,30,40,50
Elemento para procurar: 20
Procedimento:
Elemento do meio: 30 e o elemento a procurar é menor do que 30, logo a pesquisa vai passar a ser do início do matriz até ao índice do meio -1
Logo em seguida o elemento do meio é o 20 e o elemento do meio é o elemento que estamos a procurar, logo retornar o índice 1
Dados de Saída: 1
Implementações
Video URL
Video a explicar pesquisa binária