Os algoritmos de pesquisa e classificação são os algoritmos populares em qualquer linguagem de programação. Eles são a base para entender os fundamentos da programação. Um algoritmo de pesquisa popular é a Pesquisa Binária em . Neste artigo, contarei tudo sobre sua implementação.
Os tópicos abaixo são abordados neste artigo:
Vamos começar!
O que é pesquisa binária?
Pesquisa binária em é um algoritmo de pesquisa que encontra a posição de um valor alvo dentro de um matriz . Busca binária compara o valor de destino com o elemento do meio da matriz. istofunciona apenas em um conjunto classificado de elementos. Para usar a pesquisa binária em uma coleção, o deve primeiro ser classificado.
Quando o é usado para realizar operações em um conjunto classificado, o número de iterações pode sempre ser reduzido com base no valor que está sendo pesquisado. Você pode ver no instantâneo acima como encontrar o elemento médio . A analogia da pesquisa binária é usar a informação de que a matriz é classificada e reduzir a complexidade do tempo para O (log n) .
Implementando Algoritmo de Pesquisa Binária
Vamos dar uma olhada no pseudocódigo abaixo para entendê-lo de uma maneira melhor.
Procedimento binary_search A & larr ordenado array n & larr tamanho do array x & valor larr a ser pesquisado Defina baixo = 1 Defina alto = n enquanto x não encontrado se for altoExplicação:
Passo 1: Primeiro, compare x com o elemento do meio.
Passo 2: Se x corresponder ao elemento do meio, você deve retornar o índice do meio.
Etapa 3: Caso contrário, se x for maior do que o elemento do meio, então x pode ficar apenas na metade da matriz do lado direito após o elemento do meio. Portanto, você recorre à metade direita.
Passo 4: Caso contrário, se (x for menor), então, ocorrerá para a metade esquerda.
É assim que você precisa procurar o elemento na matriz fornecida.
como criar uma lista vinculada em cVamos agora ver como implementar um algoritmo de pesquisa binária recursivamente. O programa abaixo demonstra o mesmo.
Pesquisa binária recursiva
public class BinarySearch {// Implementação Java da busca binária recursiva // Retorna o índice de x se estiver presente em arr [l..h], caso contrário, retorna -1 int binarySearch (int a [], int l, int h, int x) {if (h> = l) {int mid = l + (h - l) / 2 // Se o elemento está presente no meio if (a [mid] == x) return mid // If element é menor que mid, então ele só pode estar presente no subarray esquerdo se (a [mid]> x) retornar binarySearch (arr, l, mid - 1, x) // Do contrário, o elemento só pode estar presente no subarray direito return binarySearch (arr, mid + 1, h, x)} // Chegamos aqui quando o elemento não está presente na matriz return -1} public static void main (String args []) {BinarySearch ob = new BinarySearch () int a [] = {20, 30, 40, 10, 50} int n = a.length int x = 40 int res = ob.binarySearch (a, 0, n - 1, x) if (res == -1) System.out .println ('Elemento não presente') else System.out.println ('Elemento encontrado no índice' + res)}}Ao executar o programa acima, ele localizará o elemento presente no índice particular
Elemento encontrado no índice 2Isso nos leva ao final da Pesquisa Binária em Java artigo. Espero que você tenha achado informativo e tenha ajudado na compreensão .
Confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. Estamos aqui para ajudá-lo em cada etapa de sua jornada, para nos tornarmos mais uma pergunta da entrevista java. Nós criamos um currículo que é projetado para estudantes e profissionais que desejam ser um Desenvolvedor Java. O curso foi elaborado para dar a você uma vantagem inicial na programação Java e treiná-lo para os conceitos básicos e avançados de Java, juntamente com várias estruturas Java como Hibernate e Spring.
Caso você enfrente alguma dificuldade ao implementar a Pesquisa Binária em , por favor mencione-o na seção de comentários abaixo e entraremos em contato com você o mais rápido possível.