Busca Binária - Não recursivo
Publicado por Fabio Curtis Volpe 29/04/2005
[ Hits: 11.555 ]
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
Rotinas para manipulação de matrizes
Nenhum comentário foi encontrado.
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Como redefinir o diretório Home? (5)
Problemas com adaptadores wifi no Zorin (1)
Ocomon 6.0.1 - Problemas ao editar configurações estendidas (7)