M04A18 – Busca Binária em Vetores

Home Fóruns Programação Básica M04A18 – Busca Binária em Vetores

Visualizando 0 resposta da discussão
  • Autor
    Posts
    • #88489

      Boa noite,

      Na resolução da busca binaria os 4 primeiros índices não estão sendo achados, mesmo eles estando dentro do vetor. Na aula o professor faz da posição do meio para o fim e de um numero não existente, mas não das posições iniciais e eu fazendo o teste mesmo os números dentro do vetor ele não acha o valor. Vou colocar o código para que seja analisado se estou fazendo algo de errado.

      programa
      {
      	inclua biblioteca Util
       --> u
      	
      	funcao inicio()
      	{
      		inteiro vet[10], i = 0, j = 0
      		logico encontrado
      		//Sorteia o vetor sem repetição
      		enquanto(i < u.numero_elementos(vet)){
      			vet[i] = sorteia(1,20)
      			encontrado = falso
      			para(inteiro aux = 0; aux < i; aux++){
      				se(vet[aux] == vet[i]){
      					encontrado = verdadeiro
      					pare
      				}
      			}
      			se(nao encontrado){
      				i++
      			}
      		}
      		//Usa a técnica de SWAP para colocar em ordem um vetor
      		inteiro aux2 = 0
      		para(i = 0; i < u.numero_elementos(vet)-1; i++){
      			para(j = i+1; j < u.numero_elementos(vet); j++){
      				se(vet[i] > vet[j]){
      					aux2 = vet[i]
      					vet[i] = vet[j]
      					vet[j] = aux2
      				}
      			}
      		}
      		para(i = 0; i < u.numero_elementos(vet); i++){
      			escreva(vet[i]," ")
      		}
      		inteiro chave
      		escreva("\nQuer buscar qual valor? ")
      		leia(chave)
      		encontrado = falso
      		inteiro ini = 0, fim = u.numero_elementos(vet)-1, meio = 0
      		enquanto(ini < fim){
      			meio = (ini + fim) / 2
      			se (vet[meio] == chave){
      				encontrado = verdadeiro
      				pare
      			} senao {
      				se (chave > vet[meio]){
      					ini = meio + 1
      				} senao {
      					fim = meio - 1
      				}
      			}
      		}
      		se (encontrado){
      			escreva("O valor ",chave," foi encontrado na posição ", meio ," do vetor.")
      		}senao{
      			escreva("Infelizmente o valor ",chave," não foi encontrado no vetor.")
      		}
      	}
      }
Visualizando 0 resposta da discussão
  • Você deve fazer login para responder a este tópico.