Ir ao conteúdo
  • Cadastre-se

busca ternaria


tianopires

Posts recomendados

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;
}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...