Busca Binária - Não recursivo
Publicado por Fabio Curtis Volpe 29/04/2005
[ Hits: 11.791 ]
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]);
}
Busca do código do produto-Vetores----
Mini-editor de texto intuitivo em ncurses
Nenhum comentário foi encontrado.
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
Habilitando clipboard manager no ambiente COSMIC
A compatibilidade do LibreOffice com o Microsoft Office
Colocando hotcorner no COSMIC para exibir "workspaces"









