Ir ao conteúdo
  • Cadastre-se

Busca binaria , problema na busca de valores


Flavia234

Posts recomendados

nesse algoritmo de busca binaria preciso fazer a busca de um valor contido em uma matriz ordenada pelo teclado então no algoritmo preciso considerar os meus indices i , j, inicio , meio e fim , mas nao estou conseguindo fazer a busca =[


#include<conio.h>
#include<iostream>
using namespace std;
int main()
{

const int t = 10;
int mat[t][t],cod,meio;

for (int i=0; i<t; i++)
{
cout <<"Informe os elementos :";
cin >> mat[i][0];
}
for (int j=0; j<t; j++)
{
}
cout << "Informe o codgo a ser buscado :";
cin >> cod;

int j=0;
int i=0;
int fim = t;

meio = (i+fim)/2;

while (cod != mat[meio][1] && (i < fim))
{
if( mat[meio][1]< cod)
i = meio + 1;

else
{
fim = meio - 1;
}
if(cod == mat[meio][1])
cout <<"registro encontrado "<<endl;
else
{
cout <<"codigo nao encontrado "<<endl;
}
}

system("pause");
}


Link para o comentário
Compartilhar em outros sites

oi , eu dei uma analisada em seu codigo fiz umas alteraçoes e aqui ele rodou certinho, da uma olhada qualquer coisa pode perguntar^_^

include<conio.h>
#include<iostream>
using namespace std;
int main()
{

const int t = 10;
int mat[t][t],cod,meio,x=0;

for (int i=0; i<t; i++)
{
cout <<"Informe os elementos :";
cin >> mat[i][0];
}
for (int j=0; j<t; j++)
{
}
cout << "Informe o codgo a ser buscado :";
cin >> cod;

int j=0;
int i=0;
int fim = t;

while (i<=fim)
{
meio = (i+fim)/2;
if(cod == mat[meio][0])
{
cout<< " cod encontrado"<<endl;
x++;
}
if (cod < mat[meio][0])
{

fim = meio - 1;

}

else
{

i = meio+ 1;
}

}
if(i> fim)
cout<<"codigo nao encontrado"<<endl;
system("pause");
}


Link para o comentário
Compartilhar em outros sites

ainda tem um probleminha ai, quando eu peço pra fazer a busca com um numero pequeno de dados ele imprime as duas saidas encontrado e nao encontrado, tem algum problema na comparaço do if :huh:

while (i<=fim)

(...)

if(i> fim)

Imagino que se ele sai do while é porque i>fim...

Inevitavelmente vai printar que achou e que não.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!