Ir ao conteúdo
  • Cadastre-se
tianopires

busca ternaria

Recommended Posts

ola pessoal!

meu professor passou uns exercícios de busca binaria, ate ai beleza. o problema vem depois, ele quer que faça em ternario como pede abaixo.

 

4) Faça um algoritmo de pesquisa ternária, ou seja, o vetor é dividido em 3 partes “iguais”.

 

5) Refaça o exercício 4 para a pesquisa ternária. Mostre os valores de começo, fim, meio1 e meio2 a cada passo.

 

fiz em binário

segue código:

 

#include <stdio.h> 
#include <stdlib.h>
 
int busca(int inicio, int fim, int num, int *vet);
 
int main(void)
{
 
    int inicio, fim;
    int num;
    int vet[10]={2,3,6,9,12,16,18,25,36,40};
    int indice;
    printf("Digite o valor de que deseja procurar no vetor: ");
    scanf("%d",&num);
 
    inicio=0;
    fim=9;
  indice = busca(inicio,fim,num,vet);
if(indice!=-1)
printf("\nValor %d encontrado no vetor.\n",vet[indice]);
    else 
printf("\nO valor %d  nao existe no vetor.\n", num);
  getchar();
    getchar();
    return(0);
}
int  busca(int inicio, int fim, int num, int *vet)
   {
int meio;
printf("\nvalor do inicio e: %d\n", inicio);
        printf("\nvalor do fim e: %d\n", fim);
 
while (inicio <= fim)
       {
meio = (inicio + fim) /2;
printf("\nvalor do inicio e: %d\n", inicio);
printf("\nvalor do fim e: %d\n", fim);
printf("\nvalor meio e: %d\n", meio);
if (vet[meio] == num)//o numero que estou procurando é = num do meio?
return meio;
 
else 
 
if (vet[meio] > num)//o numero que estou procurando é maior num do meio?
 
fim = meio -1;
 
else
 
//if(nome[meio] < num)//o numero que estou procurando é menor num do meio?
 
inicio = meio + 1;
  }
return -1;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×