SóProvas


ID
1525651
Banca
COMPERVE
Órgão
UFRN
Ano
2015
Provas
Disciplina
Programação
Assuntos

Considere a seguinte função busca escrita em linguagem C:

                        bool busca(int vetor[ ], int n, int tam)
                        {
                              int ini=0, mid;
                              while (ini <= tam)
                              {
                                      mid = (ini + tam)/2;
                                      if (vetor[mid] == n)
                                            return true;
                                     else
                                            if (n > vetor[mid])
                                                  ini = mid+1;
                                            else
                                                  tam = mid-1;
                              }
                              return false;
                        }

Essa função implementa o algoritmo de busca

Alternativas
Comentários
  • //Implementação Iterativa:

     

    int PesquisaBinaria (int vet[], int chave, int Tam)

    {

         int inf = 0;     // limite inferior (o primeiro índice de vetor em C é zero)

         int sup = Tam-1; // limite superior (termina em um número a menos. 0 a 9 são 10 números)

         int meio;

         while (inf <= sup)

         {

              meio = (inf + sup)/2;

              if (chave == vet[meio])

                   return meio;

              if (chave < vet[meio])

                   sup = meio-1;

              else

                   inf = meio+1;

         }

         return -1;   // não encontrado

     

     

    Fonte: https://pt.wikipedia.org/wiki/Pesquisa_bin%C3%A1ria

  • LETRA B
    bool busca(int vetor[ ], int n, int tam) 
        { 
            int ini=0, mid; 
            while (ini <= tam) -> A Recursividade geralmente é usada para eliminar laço FOR ou WHILE(menos frequente), logo temos um iteração
                {
                    mid = (ini + tam)/2; - Aqui nós temos a divisão do Vetor, logo não há como ser sequencial
                    if (vetor[mid] == n) 
                        return true; 
                    else 
                        if (n > vetor[mid]) 
                            ini = mid+1; 
                        else 
                        tam = mid-1; 
               }
                    return false; 
        }