Ir ao conteúdo
  • Cadastre-se

SelectSort + BinarySearch não quer buscar corretamente


Posts recomendados

Primeiro eu ordenei o vetor com o SelectSort e depois fiz uma busca com o BinarySearch, mas a busca não é eficaz, alguém sabe o que pode ser?

Os números que digito, ele da  "Nao Encontrado";

#include <iostream>
using namespace std;

void SelectSort(int vet[10]){
	int min,aux;
		for(int i=0;i<10;i++)
		{
			min=i;
		
		for(int j=i+1;j<10;j++)
		{
			if(vet[j]<vet[min])
			{
				min=j;
			}
			aux=vet[min];
			vet[min]=vet[i];
			vet[i]=aux;
		}
	}
}
int BinarySearch(int vet[10], int tam, int v){
	int left=0, right=tam -1;
	while(left<=right){
		int middle = (left+right)/2; //Valor do meio
		if(v==vet[middle]) //se o valor inserido for igual ao do meio
			return middle;// Eu retorno o "middle" que é o meu valor procurado
		else if(v>vet[middle])// Se o valor for maior que o do meio
			left=middle+1; //"left" recebe +1, supondo que ele ande pra frente
			else
			right=middle-1;//"right" recebe -1, supondo que ele ande pra trás 
	}
	return (-1);
}

main(){
	int vet[10]={3,56,45,43,8,4,7,98,16,78}, v, tam;
	SelectSort(vet);
	for(int i=0;i<10;i++){
		cout<<vet[i]<<"|";
	}
	cout<<"\nInforme o Elemento: ";
	cin>>v;
	int ret = BinarySearch(vet,10, v);
	if(ret!=-1)
		cout<<"Elemento Encontrado! ";
	else
		cout<<"Elemento Nao Encontrado! ";
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!