Jump to content
Fórum Script Brasil
  • 0

Busca Binária


Barbaraa

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...