Busca Binária - Não recursivo
Publicado por Fabio Curtis Volpe 29/04/2005
[ Hits: 11.604 ]
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]); }
Shadow Mapping utilizando OpenGL e Cg
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
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Alguém que utilize o Warsaw do BB no Ubuntu 24.04 (1)
Usar uma VM dentro do meu notebook como firewall para um dispositivo e... (1)