Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
#include <stdio.h> #include <stdlib.h> int main(){ int *v; //Ponteiro para o vetor que ira ser alocado // int tamanho_vetor; // Tamanho do vetor a ser alocado // int i; //Variavel de controle dos loops (loop é um laço infinito em C.Para sair do laço infinito usa-se break para forçar a saída quando uma determinada condição ocorrer.// int valor; //Variavel que ira conter o valor temporario da posicao do vetor// int pesquisa; //Variavel que ira conter o elemento a ser pesquisado no vetor// int controle_pesquisa = 1; // Variavel de controle de pesquisa, identifica se o elemento foi encontrado // int inicio, meio, fim; // Variaveis de controle do vetor durante a pesquisa binaria // printf("Digite um tamanho para o vetor: "); // Escreve uma mensagem pedindo o tamanho do vetor // scanf("%d", &tamanho_vetor); //Recebe o tamanho do vetor// v = (int *) malloc(tamanho_vetor * sizeof(int)); //Aloca o espaco de memoria do vetor // if (v == NULL) //Verifica se houve erro na alocacao de memoria// { printf("Problema ao alocar vetor!"); //Exibe a mensagem de erro// return(1); } else { for (i = 0; i < tamanho_vetor; i++) //Alimentacao do vetor// { printf("Digite a posicao %d do vetor: ", i); scanf("%d", &valor); v[i] = valor; } printf("Digite o elemento que deseja pesquisa no vetor: "); //Recebe o valor a ser pesquisado no vetor // scanf("%d", &pesquisa); inicio = 0; //Define o inicio e o fim do vetor. (Fim do vetor: seu_tamanho - 1 // fim = tamanho_vetor - 1; while (inicio <= fim) //Loop que ira realizar a pesquisa binaria // { meio = (inicio + fim) / 2; //Obtem o meio do vetor // if (pesquisa == v[meio]) //Verifica se o elemento foi encontrado // { controle_pesquisa = 0; break; } /** * Se a pesquisa for menor que o meio do vetor, * entao o fim do vetor sera o meio atual -1 */ else if (pesquisa < v[meio]) { fim = meio - 1; continue; } /** * Se a pesquisa for maior que o meio do vetor, entao a pesquisa * comecara a partir do meio atual atual do vetor */ else if(pesquisa > v[meio]) { inicio = meio + 1; continue; } /** * Caso nada seja encontrado, define o controle_pesquisa = 1 */ else { controle_pesquisa = 1; break; } } /** * Verifica a variavel que indica se o elemento foi encontrado ou nao. * Se for 0, o elemento foi encontrado, caso contrario, o elemento nao foi * encontrado. Basta entao exibir as mensagens. */ if (controle_pesquisa == 0){ printf("Elemento %d encontrado! Posicao: %d - Valor: %d", pesquisa, meio, v[meio]); } else { printf("Elemento %d nao encontrado!", pesquisa); } return (0); } }
Compartilhar