Busca Binária - Não recursivo
Publicado por Fabio Curtis Volpe 29/04/2005
[ Hits: 11.709 ]
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]);
}
Binário para Decimal, Hexa, Char
Função simples de criptografia em um vetor
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? (11)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)
Problema em SSD ao dar boot LinuxMint LMDE FAYE 64 (3)









