Ir para conteúdo
Fórum Script Brasil
  • 0

Busca Binária


Barbaraa

Pergunta

Boa tarde pessoal,

 

Estou utilizando este código para uma busca binária, porem ao compilar, não me retorna a resposta desejada, não encontrei o erro, poderiam me dar um help? Muito obrigada.

 

#include<iostream> // p. usar cout cin
#include<new> // p. alocação de memória
#include<string> // trabalhar com textos
#include<stdlib.h> // implementa funções p. diversas operaões
#include<locale.h>
#define TAM 10

using namespace std; // p. utilisar cout cin

void imprimeVetor(int vetor[TAM]){

    int cont; // auxiliar contador

    //Imprime o vetor:
    for (cont = 0; cont < TAM; cont ++){
        cout << vetor[cont] << " - ";
    }
}

int buscaBinaria(int vetor[TAM], int valorProcurado, int *posicaoEncontrada){

    int esquerda = 0; // limite da esquerda
    int direita = TAM -1; // limite da direita
    int meio; // O meio onde fica o cursor

    while(esquerda <= direita){
        meio = (esquerda + direita)/2;

        //Quando o valor do meio é encontrado:
        if(valorProcurado == vetor[meio]){
            *posicaoEncontrada = meio;
            return 1;
        }else if(valorProcurado < vetor[meio]){
            esquerda = meio -1;
        }else{
            direita = meio +1;
        }
    }
    return -1;
}


int main(){

    setlocale(LC_ALL, "");

    int vetor[TAM] = {1, 29, 93, 75, 39, 03, 49, 90, 23, 20};
    int valorProcurado;
    int posicao, posicaoEncontrada;

    //Auxiliar contador
    int cont;

    //Imprime o vetor na tela:
    imprimeVetor(vetor);

    cout << "Qual número deseja encontrar?";
    cin >> valorProcurado;

    if(buscaBinaria(vetor, valorProcurado, &posicaoEncontrada) == 1){
        cout << "O valor foi encontrado na posição:" << posicaoEncontrada;
    }else{
        cout << "O valor não foi encontado.";
    }

    return 0;

}

 

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...