SóProvas


ID
2709253
Banca
SUGEP - UFRPE
Órgão
UFRPE
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Suponha que ‘vec’ é um array ordenado de 1000 chaves inteiras. Quantas comparações no máximo são necessárias para verificar se um inteiro qualquer ‘r’ pertence a ‘vec’?

Alternativas
Comentários
  • Sem saber a forma de pesquisa é impossível saber...

  • Questão muito mal formulada, suponho que seja por pesquisa binária. Na pesquisa binária é necessario que o vetor esteje ordenado e dividimos o vetor em "subvetores" até encontrar o valor pesquisado. É analisado se o valor procurado é maior ou menor ao valor central, caso maior pesquisamos na parte da direita, caso menor na parte da esquerda. Fazendo isto, no pior caso, inicialmente divide-se o vetor em duas parte de 500, logo apos em 250, 125, 63, 32(metade de 63 é 31,5 porem vetores tem indices inteiros), 16, 8, 4, 2, 1. Em cada divisão é feito uma comparação, com isso temos 10 comparações. Porém, o valor da posição central de alguma divisão pode ser o valor pesquisado, fazendo que se tenha menos comparações e não seja o pior caso.

  • Questão mal formulada. Mas partindo do pressuposto que o vetor está ordenado podemos concluir que o algoritmo de busca utilizado é o de busca binária, portanto, R = log(1000)/log(2) = 10

  • Força Guerreiro!!!!!!