Busca Binária - Não recursivo
Publicado por Fabio Curtis Volpe 29/04/2005
[ Hits: 11.597 ]
Busca não recursivo
/*************************************************************************** Fábio Curtis Volpe curtis.volpe@gmail.com BUSCA BINÁRIA ***************************************************************************/ #ifdef HAVE_CONFIG_H #include <config.h> #endif #include <stdio.h> #include <stdlib.h> #define MAX 10 int v[MAX]; int main() { int i, ele; for(i=0; i<MAX; i++) { v[i]=rand()/10000000; } /* ordenando o vetor - quicksort */ qs(v, 0, MAX-1); printf("Elementos do vetor\n"); for(i=0;i<MAX;i++) printf("%d\n", v[i]); printf("\nBusca Binária\n"); printf("Digite um elemento:"); scanf("%d", ele); buscaBinaria(v, ele, 0, MAX); } void qs(int *v, int left, int right) { int i, j; int x, y; i=left; j=right; x=v[(left+right)/2]; do { while(v[i]<x && i<right) i++; while(x<v[j] && j>left) j--; if(i<=j) { y=v[i]; v[i]=v[j]; v[j]=y; i++; j--; } }while(i<=j); if(left<j) qs(v, left, j); if(i<right) qs(v, i, right); } void buscaBinaria(int *v, int *ele, int inicio, int fim) { int meio, i, f, elemento=0; elemento=*ele; while(inicio<=fim){ meio=(inicio+fim)/2; if(elemento<v[meio]) { meio=meio-1; fim=meio; } else//(elemento>v[meio]); inicio=meio+1; } if(elemento!=v[meio]) printf("\nNão existe o elemento %d\n\a\a", elemento); else printf("\nExiste o elemento %d\n\a\a", v[meio]); }
Boletim Escolar Com Manipulação de Arquivo
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Quebra de linha na data e hora no Linux Mint
Organizando seus PDF com o Zotero
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (9)
Problema com Conexão Outlook via Firewall (OpenSUSE) com Internet Fibr... (5)