Buscar

Busca Binária

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

#include <iostream>
using namespace std;
int main(){
int tamanho;
cin >> tamanho;
int vet[tamanho];
for (int i = 0; i < tamanho; i++)
{
	cin >> vet[i];
}
int elemento;
cin >> elemento;
int inicio = 0;
int meio;
int fim = tamanho-1;
int posicao =-1;
while (inicio <= fim)
{
	meio = ((inicio+fim)/2);
	if (elemento == vet[meio])
	{
		posicao = meio;
		inicio = fim+1;// fim do programa;
	}
	else
	{
		// Busca Binária de ordem crescente para fazer a busca em ordem decresente troque o operador < para o operador >.
		
		if (elemento < vet[meio])// elemento está entre o inicio e o meio.
		{
			inicio = meio+1;
		}
		else // elemento está entre o meio e o fim.
		{
			fim = meio-1;
		}
	}
}
cout << posicao;
return 0;
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando