SóProvas



Questões de Algoritmos de Busca


ID
16849
Banca
CESPE / CEBRASPE
Órgão
TRE-AL
Ano
2004
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A atividade de programação requer conhecimento técnico de
diversas formas de algoritmos e estruturas de controle e de dados.
Acerca dos elementos técnicos da atividade de programação,
julgue os itens a seguir.

Um procedimento correto para determinar o sucessor de um
nodo N em uma árvore de busca binária é o seguinte:
primeiro, localiza-se o nodo N; em seguida, com o ponteiro
direito de N, obtém-se o nodo ND e, a partir de ND, faz-se
o percurso de todos os possíveis ponteiros esquerdos até que
seja alcançado o fim da ramificação, cujo nodo final é o
sucessor de N.

Alternativas
Comentários
  • Aqui temos um comentário acerca disso: http://equipe.nce.ufrj.br/adriano/c/apostila/arvore.htmEsse caso envolve tentar remover um nó com dois filhos em uma árvore binária.Este nó (sucessor) é um descendente que está na subárvore da direita do nó e corresponde ao nó mais à esquerda desta árvore. Ele não tem filhos à esquerda e a sua árvore à direita pode ser movida para o lugar de s.
  •          m
        /           \
       i               q
     /   \          /       \
    h    k        o        s
         /  \     /  \      /
        j    l   n   p    r

    Nesta árvore temos um exemplo em que este algoritmo não funciona. Se buscarmos "n" e utilizarmos seu ponteiro direito para obter seu sucessor nada encontraremos, pois o mesmo é nulo, seria preciso retornar um nível para encontramos "o".

    Para que o algoritmo esteja completo é preciso, caso o ponteiro direito seja nulo, retornar ao nó pai e esté será seu sucessor. Caso não haja pai (se "n" for o nó raiz da árvore) não há sucessor.

    Desta forma a questão deveria estar "Errada"
  • A questão está correta. 

    Em uma árvore de busca binária podemos ter uma regra de inserção que seguem duas regras:

    - os elementos da subárvore a direita do nó N possuem valor maior que N
    - os elementos da subárevore à equerda do nó N possuem valor menor ou igual que N. 

    desse modo, para acharmos o valor sucessor de N, devemos caminhar para a subárvore a direita de N e a partir dela percorrermos a subárvore esquerde sucessivamente até encontrarmos o fim dela. Esse elemento será chamado de elemento sucessor. 

    por exemplo. 

                                                  10
                            5                                  20                           
                     3            8                  16              30
                                                  12        17
                                                    
    Nessa árvore, o elemento sucesso de 10 é 12. E o elemento sucesso de 20 é 30. 
  • Erick,

    Usando o algoritmo descrito pela banca e o seu exemplo, por favor, qual o sucessor de 17? =)

    Concordo com o João Guedes Júnior, esta questão está ERRADA.

ID
17134
Banca
CESPE / CEBRASPE
Órgão
TSE
Ano
2007
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca da representação e do armazenamento de informações, assinale a opção correta.

Alternativas
Comentários
  • Letra a: Correta - http://pt.wikipedia.org/wiki/Hash.
    Como a seqüencia do hash é limitada, muitas vezes não passando de 512 bits, existem colisões (seqüências iguais para dados diferentes). Quanto maior for a dificuldade de se criar colisões intencionais, melhor é o algoritmo.

    Letra b: Errada - Na verdade o algoritmo First-Fit é utilizado para alocação dinâmica de processos na memória:

    Fragmentação
    Fragmentação acaba com a performance: depois de algum tempo uma grande parte da memória fica inutilizada.

    Memória fica cheia de ``buracos''
    Estratégias para ``atacar'' o problema:

    First-fit: Escolha o primeiro buraco onde o novo processo caiba.

    Letra c: errada

  • b - errada. Não basta unir as áreas livres. É preciso unir as áreas preenchidas seguindo a lógica da qual fazem parte em um arquivo, desfragmentando-o.
  • Letra C - Errada pois o arquivo precisa estar ordenado para se realizar uma busca binária. Quanto ao custo de inserção não sei afirmar.

    Letra D - Se existe um índice, pra que ordenar um arquivo, não é mesmo?
  • A alternativa B) está incorreta porque o que ela afirma é válido apenas para combater a fragmentação externa.


ID
28579
Banca
CESGRANRIO
Órgão
DECEA
Ano
2006
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Seja T um texto e C, uma cadeia de caracteres, onde n e m correspondem ao tamanho de T e C, respectivamente. Sobre a busca de C em T, é correto afirmar que o algoritmo de:

Alternativas
Comentários
  • a) Força bruta sempre é o pior desempenho e não usa hash.b) KNP tem um algorítmo dividido em duas porções, com complexidades respectivas O(n) e O (k) e a complexidade do algorítmo é O (n+k)c) KNP não faz da direita para a esquerda e sim da esquerda para a direita.d) O pior caso do RK é O(nm)
  • Apenas estendendo o comentário anterior:

    a) Força bruta sempre é o pior desempenho e não usa hash. Sua complexidade no pior caso é de O(nm).

    b) Knuth-Pratt-Morris tem um algorítmo dividido em duas porções, com complexidades respectivas O(n) e O (k) e a complexidade do algorítmo é O (n+k). No pior caso aproxima-se à força-bruta O(mn)

    c) Knuth-Pratt-Morris não faz comparações da direita para a esquerda e sim da esquerda para a direita. Boyer-Moore é que faz comparações da direita para a esquerda;


    d) A complexidade do Rabin-Karp é, em média, de O(n+m) a O(nm). No pior caso é de O( (n – m +1)m ), praticamente o mesmo caso de Boyer-Moore para o pior caso.

    e) Boyer-Moore utiliza heurísticas conhecidas como a “heurística-do-bom- sufixo” e a “heurística-do-mau-caractere”. (CORRETO)

  • De quem bibiliografia vocês tiraram esses autores de algorítmos?
  • A abordagem de Boyer-Moore é tentar combinar o último caractere do padrão em vez do primeiro com a suposição de que, se não houver correspondência no final, não é necessário tentar combinar no início. Isso permite "grandes saltos", portanto o BM funciona melhor quando o padrão e o texto que você procura são semelhantes a "texto natural" (isto é, inglês)

     

    Knuth-Morris-Pratt procura as ocorrências de uma "palavra" W dentro de uma "string de texto" principal, empregando a observação de que, quando ocorre uma falta de correspondência, a própria palavra incorpora informações suficientes para determinar onde a próxima partida poderia começar, ignorando assim a re-examinação de caracteres anteriormente correspondentes. (Fonte: Wiki)

    Isso significa que o KMP é mais adequado para conjuntos pequenos como o DNA (ACTG)

     

    https://pt.stackoverflow.com/questions/231105/qual-%C3%A9-a-diferen%C3%A7a-principal-entre-os-algoritmos-knuth-morris-pratt-e-boyer-moor

  • Controle Externo - Luiz Henrique Lima (o mais utilizado)


ID
70255
Banca
FCC
Órgão
TRT - 3ª Região (MG)
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Dois métodos orientados para busca em cadeias levam o nome de

Alternativas
Comentários
  • Questão horrível. Puro decoreba!

ID
104779
Banca
FCC
Órgão
TCM-PA
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

São algoritmos ou métodos de busca em cadeias:

Alternativas
Comentários
  • Esse gabarito foi incorretamente colocado como letra E, mas na verdade é letra A, que colocou essa prova aqui se confundiu pois há dois gabaritos no arquivo.O algoritmo de Knuth–Morris–Pratt procura a ocorrência de uma "palavra" W dentro de uma "string de texto" S empregando a simples técnica de que quando aparece uma diferença, a palavra tem em si a informação necessária para determinar onde começar a próxima comparação.The Boyer–Moore string search algorithm is a particularly efficient string searching algorithm, and it has been the standard benchmark for the practical string search literature.[1] It was developed by Bob Boyer and J Strother Moore in 1977. The algorithm preprocesses the target string (key) that is being searched for, but not the string being searched in (unlike some algorithms that preprocess the string to be searched and can then amortize the expense of the preprocessing by searching repeatedly). The execution time of the Boyer-Moore algorithm can be sub-linear: it doesn't need to check every character of the string to be searched, but rather skips over some of them. Generally the algorithm gets faster as the key being searched for becomes longer. Its efficiency derives from the fact that with each unsuccessful attempt to find a match between the search string and the text it's searching, it uses the information gained from that attempt to rule out as many positions of the text as possible where the string cannot match.
  • Resumindo, os três algoritmos de busca principais são:Knuth-Morris-Pratt: procura fazendo comparação da esquerda para direitaKnuth-Morris-Pratt: procura fazendo compração da direta para esquerdaKarp-Rabin: tira um HASH da string a ser procurada e tenta encontrar um hash similar no texto alvo da busca.
  • Ok, pessoal!

    Gabarito corrigido.

    Bons estudos!


ID
147634
Banca
FCC
Órgão
MPU
Ano
2007
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere:

I. Os algoritmos de busca binária e de busca seqüencial executam processamento repetitivo.
II. Os algoritmos de busca binária e de busca seqüencial utilizam a técnica de recursão.
III. A busca seqüencial executa cada fase da repetição na forma de uma subtarefa da fase anterior.
IV. A busca binária trabalha com uma forma circular de repetição.

Está correto o que consta em

Alternativas
Comentários
  • Para ambas técnicas o vetor deve estar ordenado de forma crescente (1,2,3...)

    Sequencial - Faz o que o próprio nome diz, percorre todo vetor até encontrar o valor desejado.

    Binário - Usa tres ponteiros chamados de inicio, meio e fim, e vai diminuindo a busca alternando os ponteiros, consequentemente, diminuindo os espaços até encontrar o valor desejado.

    I. Correta
    II. Sequencial não é recursivo
    III. Subtarefa nada haver
    IV. Circular nada haver
  • A pesquisa ou busca binária (em inglês binary search algorithm ou binary chop) é um algoritmo de busca em vetores que requer acesso aleatório aos elementos do mesmo. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca (divisão e conquista) comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.


ID
149410
Banca
FCC
Órgão
TJ-SE
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Sobre os algoritmos de busca pode-se afirmar que o método

Alternativas
Comentários
  • Pesquisa Seqüencial ou Linear: é o método mais simples de pesquisa econsiste em uma varredura serial dos dados, durante a qual um argumento de pesquisa é comparado com a chave de cada entrada até que seja encontrada uma que seja igual, ou ser atingido o final da sequencia de dados.
    O desempenho do algoritmo de pesquisa sequencial é ruim, já que onúmero médio de comparações para a localização de uma entrada
    qualquer na tabela é dado pela fórmula abaixo, considerando que todasas entradas possuem a mesma possibilidade de serem solicitadas.

  • Pesquisa binária: é um método de pesquisa que só pode ser aplicado em
    conjunto de dados ordenados (e com acesso direto – memória principal).
    O método compara a chave de pesquisa com o elemento central do
    conjunto de dados. Se a chave de busca coincidir com o elemento do
    conjunto de dados, a pesquisa termina com sucesso. Caso contrário,
    verifica-se se a chave de pesquisa é maior ou menor do que o elemento
    comparado. Se for maior, o algoritmo é repetido para a parte do conjunto
    de dados ordenado que estiver após a posição comparada (centro).

  • Seleção Direta (SelectSort): é o método mais simples de classificação por
    seleção, no qual é feita uma busca sequencial para se encontrar o menor
    elemento da tabela. Quando este é encontrado, ele é permutado com o
    elemento que se encontra na posição inicial da tabela. A seguir, repete-se
    o processo para o restante da tabela, desconsiderando-se o 1º elemento
    da tabela (que já contém o menor elemento).
    • A cada passo encontra-se o menor elemento dentro do segmento
    com os elementos não selecionados;
    • Troca-se este elemento com o primeiro elemento do segmento;
    • Atualiza-se o tamanho do segmento (menos um elemento);
    • Este processo é repetido até que o segmento fique com apenas um
    elemento.

  •  Em relação à busca binária, pq ela é a mais adequada p/ pesqusiar grande quantidade de dados? Uma busca utilizado um árvore binária não seria mais adequada?

  • Questão mal feita. Tanto que os bancos de dados utilizam árvores B como índice, e não árvores binárias


ID
149929
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O desempenho de um sistema computacional depende de vários
fatores, como volume de dados, capacidade do sistema e
adequação dos algoritmos, das estruturas de dados e dos objetos
que são utilizados para realizar as operações. Acerca desse
assunto, julgue os itens que se seguem.

A busca binária pode ser realizada em vetor não ordenado. Caso o vetor contenha n elementos, o tempo de execução da busca necessita de 5n comparações.

Alternativas
Comentários
  •  Necessita de log n comparações.

  • A busca binária não pode ser realizada em um vetor desordenado e o tempo de execução é da ordem de log(n) e não 5n.

  • O erro começa no 1º período da assertiva. Nem li o resto:

    "A busca binária pode ser realizada em vetor não ordenado. ...."

    Não! O vetor tem que ser ordenado para se realizar a busca binária.
  • Tem que está  ordenado, pois  isso é um requisito obrigatório para busca ordenada


ID
157855
Banca
FCC
Órgão
METRÔ-SP
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O objetivo de fazer uma busca rápida a partir de uma chave de pesquisa simples e obter o valor desejado é alcançado pela estrutura de dados especial denominada

Alternativas
Comentários
  • Tabela hashing  também conhecida por tabela de espalhamento, é uma estrutura de dados especial, que associa chaves de pesquisa (hash) a valores. Seu objetivo é, a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado. É algumas vezes traduzida como tabela de escrutínio.


ID
163984
Banca
FCC
Órgão
TJ-PI
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

É um método de pesquisa ou busca, cujo algoritmo parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca, comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor. Trata-se do método denominado busca

Alternativas
Comentários
  • d-

    a busca binaria é umk algoritmo para encontrar um elemento em um array ORDENADO, baseado no esquema divide and conquer. sua complexidade em big o notation é [log2(n+1)] = [log2(n)+1]

  • Busca binária

    É o método que realiza a busca por um elemento, dividindo um vetor ordenado em duas partes e testando em qual delas o elemento deveria estar, procedendo da mesma forma para a parte provável, e assim, sucessivamente, até que o elemento seja encontrado. A utilização da busca binária diminui a complexidade da busca, mas não a da inserção ou da remoção.

    Complexidade:

    Pior caso: O(log n)

    Caso médio: O(log n)

    Melhor caso: 1

    Alternativa: D


ID
201475
Banca
FCC
Órgão
BAHIAGÁS
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere o algoritmo de busca:

Testar o elemento a m (a índice m) sorteado aleatoriamente e compará-lo ao argumento de busca x. Se o elemento for igual a x, a busca termina. Se menor que x todos os elementos com índices menores ou iguais a m podem ser descartados dos próximos testes e se for maior que x todos aqueles que possuem índices maiores ou iguais a m também podem ser descartados.

Tal algoritmo é denominado busca

Alternativas
Comentários
  •  a) linear: uma busca linear é realizada pela seleção de um elemento após o outros sendo que para selecionar o último elemento de uma estrutura com 10 elementos teria que percorrer todos os 9 primeiros elementos.

    b) em tabelas: este algoritmo de busca possui a característica de existência de índices para os elementos, também conhecida como busca indexada ou busca em tabelas hash. Caso queira selecionar um elemento X da tabela esse elemento passará por um processo de tradução em índice e irá diretamente buscar o elemento com apenas uma seleção(caso seja uma tabela resistente a colisões*)

    c) binária: a busca binária é definida pela seleção de elementos maiores ou menores que um dado índice da estrutura de dados. Por exemplo: se você está buscando um elemento X na estrutura de dados E inicialmente irá escolher algum elemento(E1) dessa estrutura(pode ser aleatoriamente este primeiro elemento). Logo em seguida irá ver se esse elemento E1 é maior ou menor que X, caso seja maior agora a busca ser realizará entre o próximo elemento maior que E1 e o último elemento de E, caso contrário entre o elemento anterior a E1(o primeiro menor que E1) e o primeiro elemento que E, definindo sempre um intervalo menor para a busca normalmente em metade dos elementos da primeira busca até encontrar, ou não, o elemento X.

    d)Knuth-Morris-Pratt: é um algoritmo de busca em cadeias ou strings

    e) Boyer-Moore: outro algoritmo de busca em cadeias ou strings

     

    *Resistência a colisões é uma importante propriedade de tabelas hash que mantém a complexidade de busca em O(1), ou seja apenas uma seleção para encontrar o elemento desejado.


ID
209206
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de pesquisa de dados e de operações básicas sobre
estruturas, julgue os itens que se seguem.

A pesquisa sequencial é aplicável em estruturas não ordenadas.

Alternativas
Comentários
  • Se os registros não estão ordenados, você precisa percorrer todos até encontrar o que busca. Se estivessem ordenados, poderíamos fazer uma busca binária.

  • Assertiva CORRETA.

    Oalgoritmo de busca sequêncial pode ser executado em um vetor não ordenado e em um vetor ordenado.

    Em um vetor  não ordenado,será  buscado  o número até que ele seja encontrado ou até se chegar ao final do vetor.

    Em um vetor ordenado,será buscado o número até que ele seja encontrado e enquanto for maior que o número do vetor.

    Fonte: Estrutura de Dados (Ana Fernanda Gomes - 2011)

    Bons estudos.
  • Acesso seqüencial: o arquivo é lido registro por registro até o registro desejado ser encontrado. Essa é a forma menos eficiente de acesso, mas algumas situações favorecem o seu uso, como a busca por texto (comando grep) ou quando um arquivo possui poucos registros.

  • CORRETO.

     

    Pesquisa SEQUENCIAL:

    A busca é simples e pode ser aplicada em estruturas ordenadas ou não.

     

    obs. Caso tivesse falando da busca BINÁRIA, aí sim, exige uma estrutura ordenada.


ID
209209
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de pesquisa de dados e de operações básicas sobre
estruturas, julgue os itens que se seguem.

Na pesquisa binária, realiza-se a varredura de uma estrutura de dados desde o seu início até o final dessa estrutura, ou até que uma informação desejada seja encontratada.

Alternativas
Comentários
  • Errado. A pesquisa binária não faz varredura do início ao fim. Quem faz isso é a pesquisa sequencial.

    Busca binária: A pesquisa ou busca binária (em inglês binary search algorithm ou binary chop) é um algoritmo de busca em vetores que requer acesso aleatório aos elementos do mesmo. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca (divisão e conquista) comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.

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

    Busca sequencial: Na área de informática, ou Ciência da Computação, costuma-se usar o termo busca linear (ou busca sequêncial) para expressar um tipo de pesquisa em vetores ou listas de modo sequencial, i. e., elemento por elemento, de modo que a função do tempo em relação ao número de elementos é linear, ou seja, cresce proporcionalmente. Num vetor ordenado, essa não é a pesquisa mais eficiente, a pesquisa (ou busca) binária, por exemplo, é um tipo de pesquisa com o gráfico de tempo logarítmo.

    Fonte: pt.wikipedia.org/wiki/Busca_linear

     

  • Não! O correto seria:

    Na pesquisa sequencial, realiza-se a varredura de uma estrutura de dados desde o seu início até o final dessa estrutura, ou até que uma informação desejada seja encontratada (inclusive há um erro ortográfico na questão: "encontratada").
  • Gabarito Errada

    pesquisa ou busca binária (em inglês binary search algorithm ou binary chop) é um algoritmo de busca em vetores que segue o paradigma de divisão e conquista. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • (ERRO EM VERMELHO) Na pesquisa binária, realiza-se a varredura de uma estrutura de dados desde o seu início até o final dessa estrutura, ou até que uma informação desejada seja encontratada.

     

    OBS1. Questão aborda o conceito de BUSCA SEQUENCIAL.

    OBS2. Seria pesquisa binária se o conceito viesse falando que o vetor será quebrado ao meio e analisado se o valor procurado está acima ou abaixo do meio do vetor.


ID
209212
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de pesquisa de dados e de operações básicas sobre
estruturas, julgue os itens que se seguem.

Na pesquisa por meio de interpolação, é possível realizar o cálculo da posição aproximada em que se encontra determinada chave em uma estrutura para que a distância entre a menor chave e a chave desejada seja proporcional à distância entre a menor e a maior chave do intervalo.

Alternativas
Comentários
  • Certo.

    Tipos de Algoritmos de pesquisa:

    • Pesquisa linear
    • Pesquisa binária
    • Pesquisa por interpolação
    • Pesquisa por tabelas de dispersão
    • Pesquisa de sequências de caracteres

    Pesquisa por interpolação: Variante da pesquisa binária em que escolhe o elemento a verificar de acordo com a interpolação. Por exemplo, é utilizado pelas pessoas quando procuram uma palavra no dicionário.


ID
215620
Banca
CESPE / CEBRASPE
Órgão
MPU
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

No que se refere à lógica de programação, julgue o item a seguir.

O método de pesquisa binária de cálculo de endereço é empregado tanto para a pesquisa quanto para a organização física de tabelas.

Alternativas
Comentários
  • O método de pesquisa binária, como o nome próprio diz, é usado SOMENTE para buscas.

    Mais informações: http://en.wikipedia.org/wiki/Binary_search_algorithm 

  • Método de Pesquisa Sequencial (PS) = Percorre o vetor, elemento por elemento, verificando se o elemento desejado está presente no vetor.

                    1   2    3    4    5
    Vetor -> [5][99][15][77][35]

    Método de Pesquisa Binária (PB) = Consiste em comparar alguns itens do vetor com o dado (chave alvo) que deseja-se encontrar.
    Premissa: os dados contidos no vetor já estão ordenados segundo um critério.
                          (ponto médio)
                    1    2   3  | 4      5
    vetor -> [5][15][35][77][99]
     

  • Karol,
    Concordo que o vetor já esteja ordenado e que não é necessária a organização.
    No entanto, para realizar um inserção ou exclusão de itens será necessário realizar uma busca binária para encontrar a posição que se queira realizar a operação.
    Não dá para saber o que os caras do CESPE queriam dizer com a assertiva.

ID
238303
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A respeito dos métodos de ordenação, pesquisa e hashing, julgue
os seguintes itens.

Árvore binária é uma estrutura de dados adequada à representação de hierarquia, sendo usada frequentemente em ordenação e pesquisa. Para a busca em um vetor ordenado, pode-se utilizar o algoritmo de busca binária, o qual não exige a implementação de uma árvore binária.

Alternativas
Comentários
  • Para fazer a busca binário podemos usar um array.

    1 - Verificar se elemento buscado é maior que o elemento na metade do vetor.

    a - se não for, buscar na metade superior

    b - se for, buscar na metade inferior

    2 - Repetir passo 1 com a metade da lista escolhida.

    Este algoritomo permite busca binária sem implementação da árvore.

  • "Árvore binária é uma estrutura de dados adequada à representação de hierarquia, sendo usada frequentemente em ordenação e pesquisa."
    - uma árvore é perfeitamente adequada para representar uma hierarquia
    - árvore binária de busca (ou pesquisa) é uma árvore ordenada cujos nós a esquerda de um nó pai são menores que ele, e cujos nós a direita de um nó pai são maiores que ele usada frequentemente em ordenação e pesquisa.

    "Para a busca em um vetor ordenado, pode-se utilizar o algoritmo de busca binária, o qual não exige a implementação de uma árvore binária."
    - Sim, a busca binária não exige nenhuma implementação de árvore binária.
    - A pesquisa ou busca binária (em inglês binary search algorithm ou binary chop) é um algoritmo de busca em vetores que requer acesso aleatório aos elementos do mesmo. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca (divisão e conquista) comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor. http://pt.wikipedia.org/wiki/Pesquisa_bin%C3%A1ria
  • "Árvore binária é uma estrutura de dados adequada à representação de hierarquia, sendo usada frequentemente em ordenação e pesquisa. Para a busca em um vetor ordenado, pode-se utilizar o algoritmo de busca binária, o qual não exige a implementação de uma árvore binária."

    Vamos por partes:

    1. "Árvore binária é uma estrutura de dados adequada à representação de hierarquia". Correto. Não apenas as árvores binárias, mas as árvores em sentido amplo representam seus elementos de forma hierárquica.

    2. "sendo usada frequentemente em ordenação e pesquisa." Correto. No que se refere à ordenação, árvores binárias podem ser usadas para auxiliar a implementação das técnicas (algoritmos) de árvore de decisão e HeapSort  (o heap pode ser representado por uma árvore binária ou por uma fila de prioridades). Já no que se refere à busca, as árvores podem ser usadas na implementação da busca binária.

    3. "Para a busca em um vetor ordenado, pode-se utilizar o algoritmo de busca binária, o qual não exige a implementação de uma árvore binária." Correto. Como eu falei no ponto anterior, pode-se usar uma árvore binária para se implementar a busca binária (situação em que aquela é chamada de árvore binária de busca). Porém a implementação da referida técnica de busca também pode ser feita através de um vetor (array), não exigindo, portanto, a árvore binária de busca.

    Bons estudos
  • Prezados,

    O comando da questão tem 2 afirmativas, vamos olhar uma a uma.

    1) Árvore binária é uma estrutura de dados adequada à representação de hierarquia, sendo usada frequentemente em ordenação e pequisa. Isso está correto, a árvore binária pode representar a hierarquia com o relacionamento dos seus nós , um nó sendo pai , filho , etc.. , além disso a árvore binária é muito usada em ordenação e pequisa, como por exemplo é usada no algoritmo heapsort.

    2) Para a busca de um vetor ordenado, pode-se utilizar o algoritmo de busca binária, o qual não exige a implementação de uma árvore binária. Isso está correto também , a busca binária não tem nada a ver com arvore binária , ela consiste em dividir a lista sempre pela metade, e testar se o valor procurado é maior ou menor que o valor procurado , e ai fazer o mesmo processo na metade da lista.

    Portanto a questão está correta.

  • RESOLUÇÃO:

    A Árvore binária é uma estrutura de dados adequada à representação de hierarquia, sendo usada frequentemente em ordenação e pesquisa. Para a busca em um vetor ordenado, pode-se utilizar o algoritmo de busca binária, o qual não exige a implementação de uma árvore binária.

    Resposta: Certo


ID
276703
Banca
ESAF
Órgão
CVM
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Assinale a opção correta.

Alternativas
Comentários
  • inferência bayesiana é um tipo de inferência estatística que descreve as incertezas sobre quantidades invisíveis de forma probabilística. Incertezas são modificadas periodicamente após observações de novos dados ou resultados. A operação que calibra a medida das incertezas é conhecida como operação bayesiana.
  • a) errada por que os operadores são AND, OR e NOT

    b) as buscas conceituais apresentam como resultados palavras que lembram o tema pesquisado, ao pesquisar "viola" traria no resultado também "violão", por exemplo. Então os resultados mais relevantes não conteriam necessariamente as palavras chaves escolhidas.

    c) Pegadinha com inferência bayesiana

    e) Pegadinha com busca booleana

    d - correto

ID
384424
Banca
FCC
Órgão
TRT - 7ª Região (CE)
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Os métodos de Knuth-Morris-Pratt (KMP) e de Boyer-Moore (BM) são algoritmos de

Alternativas
Comentários
  • Esses métodos são algoritmos de busca em cadeias. Seja T o texto e P o parâmetro procurado em T, o método BM consegue evitar comparações entre P e uma boa parte dos caracteres em T. O único problema desse algoritmo é que ele trabalha com um alfabeto limitado. O método KMP evita o desperdício de informações que ocorrem em outros algoritmos. Possui pré-processamento de P, permitindo que nenhum caractere seja reexaminado.


    Fonte: http://ticnapratica.blogspot.com/2010/05/logica-e-estrutura-de-dados.html



     


ID
464167
Banca
CESGRANRIO
Órgão
Transpetro
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma lista linear ou uma tabela é um conjunto não vazio de nós, tais que suas propriedades estruturais decorrem unicamente da posição relativa dos nós dentro da sequência linear. Considerando-se as diferentes listas lineares, tem-se que

Alternativas
Comentários
  • A letra 'e' está errada pois a questão afirma que o número máximo de iterações é log2n  sendo que na verdade esse é sua complexidade algoritmica que é O( log2n ) o que não implica que o algorítmo executa  log2n  passos é sim que seu trabalho cresse nessa ordem de grandesa. que é um número aproximado.
  • a) a complexidade de pior caso do algoritmo de busca em uma lista sequencial ordenada é menor do a mesma que em uma lista sequencial não ordenada.

    b) a alocação sequencial de listas é menos mais eficiente em tempo do que a alocação encadeada quando se deseja o acesso ao k-ésimo elemento da lista.

    c) se os nós consecutivos da lista estão em posição relativa sempre contígua, a lista usa alocação encadeada sequencial.

    d) na alocação dinâmica, os nós de uma lista estão aleatoriamente dispostos na memória.
  • Apesar da explicação no primeiro comentário. Ainda não ficou claro para mim a razão da "E" está errada. Agradeço muito se alguém comentar.
  • para o erro da letra, basta pensar no caso de n =4.

    O log2 de 4 é 2. Ou seja, esse deveria ser o maximo de iterações para achar um elemento.

    Considere o vetor [1,2,3,4].

    Na primeira iteração, ele deveria bucar o elemento 2,5. Como nao existe elemento quebra, ele trunca e busca o segundo elemento. E nao acha o elemento.
    Na segunda iteração, ele pega o vetor direito restante [3,4] e tenta pegar o elemento 1,5 dele, como nao tem, ele busca o primeiro elemento deste subvetor(3)
    Na terceita iteração, só resta o subvetor [4], ele busca e acha o elemento.

    Logo foram feita 3 iterações e não 2.

  • Hein? Alguém consegue apontar UM caso onde a busca em uma lista ordenada tem complexidade igual ou pior do que a busca em uma lista não ordenada (como diz a letra A)?

    Não entendi.
  • 3No item (e), "lista linear" ou "tabela" é um conceito abstrato de estrutura de dados que independe da sua implementação. A afirmativa seria verdadeira apenas para implementações que fazem uso de alocação contígua de memória (como arrays ou vetores). Para implementações de "tabelas" ou "listas sequenciais" que façam uso de alocação encadeada (como listas encadeadas), a afirmativa seria falsa.

  • (a) a complexidade de pior caso do algoritmo de busca em uma lista sequencial ordenada é menor ou igual do que em uma lista sequencial não ordenada.

    Erro do item: a complexidade será O(n) para ambas as listas se a busca for sequencial.


  • A letra E tá errada pq o número de iterações é aproximadamente lg (n)


ID
696553
Banca
FCC
Órgão
TJ-RJ
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O algoritmo conhecido como busca binária é um algoritmo de desempenho ótimo para encontrar a posição de um item em

Alternativas
Comentários
  • a) uma árvore B. A árvore já esta balanceada, logo a busca é feita percorrendo-se a árvore (sem necessidade de algoritmo de busca binária) com complexidade O(d log2dN) onde d é a ordem da árvore B
    b) uma lista ligada ordenada. Para se achar o próximo item da lista encadeada é necessário saber o anterior, logo não é possível aplicar a busca binária
    c) uma árvore de busca binária. Os elementos já estão ordenados em uma árvore binária, logo basta percorrer a árvore.
    d) um heap binário. Os elementos já estão ordenados segundo uma heap, basta localiza-los na heap (e.g. HeapSort)
    e) um vetor ordenado. Correto
  • BUSCA BINÁRIA:

     

    � A ideia básica do algoritmo é percorrer o vetor como se folheia, por exemplo, uma lista telefônica. Abandonando-se as partes do catálogo onde o nome procurado, com certeza, não será encontrado.
    � Para a realização desse tipo de busca, o vetor deve estar ordenado.
    � Esse método exige acesso aleatório aos elementos do conjunto.
    � Algoritmo possui complexidade no pior caso O(logn).
    � O pior caso ocorre quando o elemento procurado é o último a ser verificado, ou mesmo não é encontrado.

     

    Fonte: Itnerante


ID
748114
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Seja um vetor de inteiros com 400 elementos distintos ordenados em ordem crescente.

Qual é o número máximo de iterações necessárias para encontrar um elemento qualquer do vetor caso seja utilizado o algoritmo de busca binária?

Alternativas
Comentários
  • Vamos tentar encontrar 201 entre os 400 itens da lista binária.

    Passo 1: Divide 400 por 2 = 200
    Passo 1.1: 201 é maior ou menor que 20? É maior e por isso ficamos com os números entre 200 e 400
    Passo 2: Pega-se o número intermediário entre 200 e 400 = 300
    Passo 2.1: 201 é maior ou menor que que 300? É menor e por isso ficamos com os números entre 200 e 300
    Passo 3: Pega-se o número intermediário entre 200 e 300 = 250
    Passo 3.1: 201 é maior ou menor que 250? É menor e por isso ficamos com os números entre 200 e 250
    Passo 4: Pega-se o número intermediário entre 200 e 250 = 225
    Passo 4.1: 201 é maior ou menor que 225? É menor e por isso ficamos com os números entre 200 e 225
    Passo 5: Pega-se o número intermediário entre 200 e 225 = 213 (arredonda para cima)
    Passo 5.1: 201 é maior ou menor que 213? É menor e por isso ficamos com os números entre 200 e 213
    Passo 6: Pega-se o número intermediário entre 200 e 213 = 207 (arredonda para cima)
    Passo 6.1: 201 é maior ou menor que 207? É menor e por isso ficamos com os números entre 200 e 207
    Passo 7: Pega-se o número intermediário entre 200 e 207 = 204 (arredonda para cima)
    Passo 7.1: 201 é maior ou menor que 204? È menor e por isso ficamos com os núemros entre 200 e 204
    Passo 8: Pega-se o número intermediário entre 200 e 204 = 202
    Passo 8.1: 201 é maior ou menor que 202? É menor e por isso ficamos com os números entre 200 e 202
    Passo 9: Finalmente chega-se no número 201. Veja que foram necessáiros 9 passos de movimento na lista até encontrar o bendito 201.
  • O algoritmo de busca binária sempre vai comparar o número procurado com o número que está na posição do meio do vetor. Se o número comparado não for o do meio, caso esse número seja maior número procurado, ele irá jogar fora os números maiores que ele, e caso seja menor que o número procurado, ele joga fora os números menores que ele. O algoritmo repete até que o número procurado seja igual ao número comparado. 

    Enquanto (número procurado <> número comparado)
        Lê o número do meio do Vetor
        Se (número comparado > número procurado)
              Vetor novo <- 1ª posição do vetor até o número comparado
        senão
              Vetor novo <- número comparado até a última posição do vetor
     
    Então sua execução: 

    1ª iteração pega o do meio (400/2) e compara
    2ª iteração pega o do meio (200/2) e compara
    3ª iteração pega o do meio (100/2) e compara
    4ª iteração pega o do meio (50/2) e compara
    5ª iteração pega o do meio (25/2) e compara
    6ª iteração pega o do meio (12/2) e compara
    7ª iteração pega o do meio (6/2) e compara
    8ª iteração pega o do meio (3/2) e compara
    9ª iteração pega o do meio (1) e compara
     

    *Mesmo com um número só, ele ainda vai fazer uma comparação, por isso conta como uma iteração.
  • De um modo mais simplório, deve-se lembrar que busca binária é um algoritimo de complexidade O(logN), ou seja, 2^x = 400 2^8 = 256 e 2^9 = 512, assim sendo 8 ainda é menor que o tamanho máximo do vetor e 9 é mais do que suficiente para o mesmo.
  • Acho que resolvi esta questão com um pensamento mais simples (no meu ponto de vista).

    Em uma busca binária, como os números do vetor estão em ordem (menor para o maior) o algoritmo sempre fará sucessivas divisões por 2 até encontrar o valor desejado. 

    Ou seja, pega-se o valor do meio do vetor e, caso não seja o número procurado, verifica-se se o número é maior ou menor e continua-se a busca por uma das duas metades (a metade antes ou a metade depois do valor escolhido no meio do vetor).

    Desta forma, no pior caso, para garantir que qualquer número seja encontrado, basta pegar a quantidade de elementos do vetor (400) e ir dividindo o valor por 2, até que se obtenha apenas 1 valor isolado e ir contando as iterações (equivalentes às divisões por 2).

    400/2 = 200 (1 iteração)
    200/2 = 100 (2 iterações)
    100/2 = 50   (3 iterações)
    50/2 = 25     (4 iterações)
    25/2 = 13 ( neste caso haverá uma divisão do vetor em 2. Um vetor 12 e outro de 13 elementos.No pior caso, assume-se o maior com 13) (5 iterações).
    13/2 = 7 (idem, com um vetor de 6 e outro de 7 elementos) (6 iterações)
    7/2 = 4 (idem, com um vetor de 3 e outro de 4 elementos) (7 iterações)
    4/2 = 2  (8 iterações)
    2/2 = 1 (9 iterações)

    Assim, com essas 9 iterações, encontra-se qualquer elemento em um vetor ordenado de 400 elementos. 
  • Fabio a complexidade da busca binária não seria O(log2N)?

  • Força Guerreiro!!!!!!


ID
769222
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

As operações de busca em uma árvore binária não a alteram, enquanto operações de inserção e remoção de nós provocam mudanças sistemáticas na árvore.

Alternativas
Comentários
  • Mundança sistemática = mudança metódica, planejada, organizada.

    Questão correta.
  • Gabarito: C.


    Realmente, as buscas em uma árvore binária não alteram a estrutura dos dados, pois os nós são "visitados", ao contrário do que ocorre na operação de inserção, por exemplo, que além da busca de acordo com os ponteiros, o algoritmo reorganiza as subárvores e isso ocorre de maneira sistemática.


    Bons estudos e

    Inté (>‿◠)✌

  • Vamos lá. Não são nas árvores binárias, mas sim nas balanceadas.
    Algumas operações não causam tal consequência, como retirada de nós folhas ou inserção de nós  em nós folhas.
    Mas.. tudo bem.. segue. Essa questão aceita qualquer gabarito e qualquer justificativa é via engenharia reversa. Falowwww

  • Força Guerreiro!!!!!!


ID
769240
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A pesquisa sequencial e o método da bolha são métodos pouco eficientes de busca de dados.

Alternativas
Comentários
  • O método da bolha é um método de ordenação (bubblesort) e não de busca.
  • O fato do metodo bolha não ser um metodo de busca não tornaria a questão certa? ou seja ele é infeciente na busca de dados?
  • Mas afimar que o método da bolha é um método de busca automaticamente invalidaria a afirmação.
    Isso que dá quando o CESPE contrata o pessoal da FCC para fazer questões! heheheheh
  • Acho que o gabarito está errado, a questão deveria estar certa. Se a resposta estiver errada, então a pesquisa sequencial OU o método da bolha são eficientes na busca de dados. Sabemos que a pesquisa sequencial não é eficiente na busca e o método da bolha não é um método de busca.
  • Questão mal elaborada. Entendo que o CESPE queria induzir o pessoal ao erro misturando método bolha com método de busca, mas acabou tornando a questão certa.
    Nem pesquisa sequencial nem método bolha são métodos eficientes de busca.
  • Alberto Cavalcante, cuidado ao afirmar que ambos não são métodos eficientes, pois deve se levar em consideração a quantidade de dados que se está sendo ordenada e outros fatores...

  • Está certo que "A pesquisa sequencial e o método da bolha são métodos pouco eficientes de busca de dados."? Não. Está errado. Afinal, o método da bolha não é um método de busca de dados (embora seja pouco eficiente como método de ordenação).

  • A pesquisa sequencial e o método da bolha são métodos pouco eficientes de busca de dados.

    "pouco eficiente" é uma característica "busca de dados" é a definição

    Basta inverter o trecho "de busca de dados" com "pouco eficientes" e vai ficar mais claro

    A pesquisa sequencial e o método da bolha são métodos de busca de dados pouco eficientes.

    Atenção ao verbo ser

    Se deixarmos somente "método da bolha é um método de busca de dados pouco eficiente". Está errado!!!

    Buble Sort não é método de busca, é método de ordenação. Se considerar a questão certa que é um método pouco eficiente em uma busca por que é um método de ordenação estaria também considerando como certo (de acordo com a própria questão) que é um método de busca (mesmo pouco eficiente) o que está errado. Total contradição!!

    As vezes a CESPE redige pessimamente as questões. O que faz com que a gente desconfie sempre que ela quer "enganar" mas nós mesmos complicamos pra se convencer que não errou. O que termina complicando também outros estudantes.

  • Força Guerreiro!!!!!!


ID
769243
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A busca binária é realizada em um grupo de dados previamente ordenado.

Alternativas
Comentários
  • Correto. A busca binária começa a fazer a busca pelo meio do vetor.

    1. Se o elemento do meio do vetor for a chave, a busca termina com sucesso.
    2. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor.
    3. Finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.

    Assim, para que essa lógica de busca funcone, o grupo de dados (vetor) deve estar previamente ordenado.
    A figura abaixo mostra a busca pelo elemento 3:

  • BUSCA BINÁRIA:

     

     A ideia básica do algoritmo é percorrer o vetor como se folheia, por exemplo, uma lista telefônica. Abandonando-se as partes do catálogo onde o nome procurado, com certeza, não será encontrado.
     Para a realização desse tipo de busca, o vetor deve estar ordenado.
     Esse método exige acesso aleatório aos elementos do conjunto.
     Algoritmo possui complexidade no pior caso O(logn).
     O pior caso ocorre quando o elemento procurado é o último a ser verificado, ou mesmo não é encontrado.

     

    Fonte: Itnerante

  • Gabarito Certo

    pesquisa ou busca binária (em inglês binary search algorithm ou binary chop) é um algoritmo de busca em vetores que segue o paradigma de divisão e conquista. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Força Guerreiro!!!!!!


ID
769252
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os próximos itens, relativos a tipos básicos de estruturas de dados.


O tempo de busca de um elemento em uma lista duplamente encadeada é igual à metade do tempo da busca de um elemento em uma lista simplesmente encadeada.

Alternativas
Comentários
  • A questão não pode afirmar isto, visto que, se o elemento solicitado for o primeiro, tanto em uma lista simplesmente encadeada quanto numa duplamente encadeada, o tempo será o mesmo.
  • Uma lista duplamente encadeada significa que, além da informação ela possui dois ponteiros: um para o nó predecessor e outro para o sucessor. Uma lista encadeada possui apenas ponteiro para o próximo elemento. Esta característica não garante que na média, a busca em uma lista duplamente encadeada caia pela metade do tempo. Na notação big O, ambas listas possuem complexidade O(n) para buscas.
  • Listas encadeadas não são otimizadas para buscar um elemento especifico. A comparação que a questão faz teria mais sentido em relação ao array

  • Não! Apesar de permitir que se percorra a lista em ambas as direções, em média
    ambas possuem o mesmo tempo de busca de um elemento.
    Gabarito: E

     

    Estratégia Concursos

  • ERRADO.

     

    A lista encadeada simples é percorrida em um sentido
    A lista duplamente encadeada é percorrida em ambos os sentidos. 

     

    Em relação a busca, possuem a mesma complexidade de tempo O(n), em ambas estruturas tem que se percorrer os elementos a partir do elemento incial para localizar o elemento desejado.

  • Força Guerreiro!!!!!!


ID
779143
Banca
CESPE / CEBRASPE
Órgão
TRE-RJ
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os itens a seguir, referentes a estrutura de dados e
organização de arquivos.

Uma das formas mais simples e rápida de busca em uma estrutura de dados ordenada é o método de pesquisa binária, que segue o paradigma de divisão e conquista. Se o item pesquisado estiver no meio do vetor, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior e, se vier depois, a busca continua na metade anterior do vetor.

Alternativas
Comentários
  • O paradigma de divisão e conquista é uma técnica recursiva que envolve três passos em nível de recursão, onde o vetor é dividido em vetores com a metade do tamanho do original por meio de um procedimento recursivo. Essa divisão ocorre até que o vetor fique com apenas um elemento e estes sejam ordenados e intercalados.

  • Questão linda e totalmente correta.

    -----------------------------------------------------------------------------------------------------

     

    Pesquisa Binária


     O vetor é dividido ao meio.
     É verificado se o valor procurado é igual ao valor que corresponde à linha de divisão.
     Caso elemento encontrado, fim da busca.
     Caso valor não seja o procurado, é verificado se esta acima ou abaixo da linha de divisão.
     Caso esteja abaixo, a parte superior é descartada, caso contrário, a parte inferior é descartada.
     Isso é feito sistematicamente até que o valor seja encontrado ou até que seja identificado que o valor não esta na lista. A cada comparaçãometade dos elementos da lista são descartados.

     

    Fonte: Itnerante

    -----------------------------------------------------------------------------------------------------

  • Gabarito Certo

    Compare a chave com o registro que se encontra na metade da
    tabela
    ▸ Se a chave é igual ao elemento que se encontra nessa posição pare.
    ▸ Se a chave é menor que o elemento que se encontra nessa posição, então
    o registro se encontra na primeira metade do vetor
    ▸ Se a chave é maior que o elemento que se encontra nessa posição, então
    o registro se encontra na segunda metade do vetor
    ▸ Repita té que se encontre a chave ou reste apenas um elemento diferente
    da chave procurada.

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • c-

    busca binária é um método de pesquisa ou busca, cujo algoritmo parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca, comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor. sua complexidade em big o notation é [log2(n+1)] = [log2(n)+1]

  • Força Guerreiro!!!!!!


ID
779149
Banca
CESPE / CEBRASPE
Órgão
TRE-RJ
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os itens a seguir, referentes a estrutura de dados e
organização de arquivos.

No acesso a registros em um arquivo sequencial, todos os registros são percorridos desde o início até que se encontre o registro desejado.

Alternativas
Comentários
  • Não é necessáriamente do início, é de onde estiver até  o registro encontrado. 
  • Segundo o professor João Fernando M. Sarubbi (PUC-MG):

    1. Acesso a um Registro
    Podemos fazer o acesso a um registro de um arquivo seqüencial de duas maneiras.
    1.1 Acesso Serial
    Consiste na obtenção do registro que segue ao último acessado, na seqüência ditada pela chave de ordenação. (...)
    1.2 Acesso Aleatório
    Caracteriza-se por ser a indicação do registro desejado feita pela especificação de um argumento de pesquisa. Neste caso a seqüência na qual os registros são  acessados não mantém necessariamente a relação com a ordenação física do arquivo. (...)
  • Não, pois posso ter uma agenda indexada por nome onde o acesso é sequencial a partir do indice dado. Ex:

    Amelia
    Ana
    Carol
    Fabiana
    Fabricia
    Francisca
    Monica
    Paula

    Suponto que eu queira encontrar a Francisca, desta forma pelo indice minha busca seria Fabiana > Fabricia > Francisca. Ou seja, nao foram todos os registros percorrigos e nao foi desde o inicio. 

    abraços!
  • Força Guerreiro!!!!!!


ID
788680
Banca
CESGRANRIO
Órgão
Transpetro
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Qual a sequência esperada de leitura de blocos de um disco, usando o algoritmo do elevador, quando, após serem lidos primeiro o bloco 8 e depois o bloco 10, se encontram na fila de espera os blocos 12, 3, 54, 25, 49, 6 e 15?

Alternativas
Comentários
  • Segue a mesma regra de um sistema de elevador de um prédio, irá ler todas as requisições para subir e depois irá ler as requisições para descer. Nesse caso, percebe-se que ele está "subindo" pois leu o bloco 8 e 10 os blocos seguintes seriam: 12, 15, 25, 49, 54 ( o maior valor e inicia a descida), 6 e 3. Terminando assim a leitura dos blocos.

  • Força Guerreiro!!!!!!


ID
901165
Banca
CESPE / CEBRASPE
Órgão
CNJ
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com relação à estrutura de dados e organização de arquivos, julgue
os itens subsecutivos.

O método de busca mais rápido, em qualquer tipo de arquivo, denomina-se pesquisa binária.

Alternativas
Comentários
  • Busca Sequencial Linear
    Pode ser executado em um vetor não ordenado e em um ordenado. Em vetor não ordenado, será buscado o número até que ele seja encontrado ou chegar ao final do vetor. Em vetor ordenado, será buscado o numero até que ele seja encontrado e enquanto for maior que o número do vetor.

    Busca Binária
    É executado somente em vetores ordenados. Nesse algoritmo o vetor com os dados é dividido ao meio e o número do meio é comparado com o procurado.

    Resumindo: O método de busca mais rápido com pesquisa binária só acontecerá quando ja estiver ordenado.
  • Errado, mas ficaria correto assim:
    "O método de busca mais rápido, em um arquivo ordenado, denomina-se pesquisa binária."

  • O "qualquer tipo de arquivo" mata a questão. Do contrário, outros algoritmos talvez nunca fossem usados.
    Pra fins de estudo, alguns exembos de algoritmo de algoritmo de busca e suas complexidades:

  • Gabarito Errado

    Extrapolou CESPOU !

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Força Guerreiro!!!!!!


ID
906781
Banca
FCC
Órgão
TRT - 9ª REGIÃO (PR)
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere as afirmativas sobre

i) Métodos de pesquisa sequencial e de pesquisa binária

ii) Métodos de ordenação

Sabendo que N se refere ao número de elementos do conjunto, a alternativa em que i) e ii) estão ambas ERRADAS, é

Alternativas
Comentários
  • b) i) O método de pesquisa binária não pode ser aplicado quando os dados estão ordenados em ordem decrescente, mesmo se o código do método for readequado.  Está errada pois a pesquisa binária pode sim ser realizada em um array cuja ordem é decrescente, para isso basta alterar o algoritmo, adaptando-o a esse tipo de ordenação.

    ii) O método de Seleção (Selection sort) é o método mais rápido para qualquer tamanho de N se os elementos já estão ordenados, pois este é o seu melhor caso, que é O(Log2 N). Está errada pois esses fatos tratam-se na verdade sobre o insertion sort, esse algoritmo possui uma grande flexibilidade com relação ao grau de ordenação prévia do vetor, se adaptando bem aos casos onde o vetor está razoavelmente pré-ordenado, sendo em seu melhor caso O(Log² N).

  • Que complexidade é essa? O(Log² N)? Nos materiais do provas de TI as complexidades para o melhor caso para o Selection e o Insertion são respectivamente O(n²) e O(n). 

  • b-

    A pesquisa ou busca binária é um algoritmo de busca em vetores que segue o paradigma de divisão e conquista. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.

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

  • Força Guerreiro!!!!!!


ID
913267
Banca
FMP Concursos
Órgão
MPE-AC
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Dispõe-se de uma tabela contendo os dados de 5.000 inscritos num concurso público. A tabela está rigorosamente classificada em ordem alfabética crescente do nome completo do candidato e também já se verificou que não há homônimos inscritos no concurso. Deseja-se localizar um candidato na tabela a partir de seu nome completo usando a técnica de Pesquisa Binária (Binary Search). Qual é o número máximo de incursões à tabela para localizar o candidato procurado (ou descobrir que ele não existe)?

Alternativas
Comentários
  • Muito bem pessoal,
    Ao utilizarmos um algoritmo de Pesquisa Binária (Binary Search) em uma lista de dados ordenados, temos que o número máximo de iterações que deverão ocorrer até que o dado desejado seja encontrado, ou que se constate que ele não existe, é dado pela seguinte fórmula:
    max_iterações = Log2N  (logarítmo de N na base 2), ou então 2max_iterações = N (onde N é o número de registros contidos na lista de dados, que para a questão é de 5000).
    Para facilitar a resolução, podemos adotar a seguinte estratégia: sabemos que,
    210 = 1024
    211 = 2048
    212 = 4096
    213 = 8192
    Desta forma, com 12 iterações poderiamos encontrar um dado desejado em uma lista de no máximo 4096 elementos. Todavia, nossa lista  é composta por 5000 elementos, o que exige no máximo 13 iterações. Lembrando que com 13 iterações poderiamos encontrar o dado desejado em uma lista com até 8192 elementos.
  • b-

    complexidade do binary search tree é O(log n) (best case, ja ordenado) e O(n) (worst case).

    formula: log2 (N)

    e.g. log2 (1024) = 10 -> 2^10 = 1024

    como o colega notou, sao necessarias 2^13 vezes para perfazer o total de um array de 5000 elementos. log2 (5000) é um numero decimal entre 12 e 13, mas arredonda-se para cima pq nao existe meia iteracao

  • Força Guerreiro!!!!!!


ID
1003564
Banca
AOCP
Órgão
Colégio Pedro II
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A busca binária é conhecida também como busca logarítmica. Sobre a busca binária, assinale a alternativa INCORRETA.

Alternativas
Comentários
  • Apesar da letra (A) estar INCOMPLETA pois faltou alternativa dizer quais são esses elementos.

    Fonte: http://www.noginfo.com.br/arquivos/CC_LP_T09.pdf

    Página 3

    c) ERRADO. A pesquisa ou busca binária é um algoritmo de busca em vetores que segue o paradigma de divisão e conquista. Ele parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento buscando, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscando, então a busca continua na metade posterior (ou direita) do vetor. E finalmente, se o elemento do meio vier depois do elemento buscando, a busca continua na metade anterior (ou esquerda) do vetor.


ID
1095136
Banca
FUMARC
Órgão
Prefeitura de Belo Horizonte - MG
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Analise as seguintes afirmativas sobre os métodos de pesquisa em memória primária:

I – O método “Pesquisa Sequencial” percorre os registros sequencialmente a partir do primeiro, até encontrar a chave procurada ou chegar ao final dos registros.

II – O método “Pesquisa Binária” exige que os registros estejam ordenados pela chave de busca.

III – O método “Pesquisa Binária” pode ser implementado sem utilizar uma árvore binária.

Estão CORRETAS as afirmativas:

Alternativas
Comentários
  • III) Pode-se utilizar um vetor para a pesquisa binária

  • Força Guerreiro!!!!!!


ID
1112914
Banca
FCC
Órgão
AL-PE
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Cláudia trabalha como Analista Legislativo na Assembleia Legislativa do Estado de Pernambuco e recebeu de seu chefe um arquivo com a lista de todas as Leis Orçamentárias válidas entre 1900 até o presente ano, sem nenhuma ordenação. Para melhor localizar as Leis com base no ano a qual pertencem, Cláudia implementou uma solução que, buscando agilizar este processo,

Alternativas
Comentários
  • Gabarito A

    Quicksort - Escolhe-se um pivot e particiona-se a lista em duas sublistas: uma com os elementos menores que ele e outra com os maiores, que, ao serem ordenadas e combinadas com o pivot, geram uma lista ordenada. O processo é aplicado às partições para ordená-las. Embora tenha uma complexidade de pior caso de O(n2 ), no caso médio é de O(n log n). 
     

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Força Guerreiro!!!!!!


ID
1215094
Banca
CESPE / CEBRASPE
Órgão
TJ-SE
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca da pesquisa e da classificação de dados, julgue os próximos itens.

A pesquisa binária, o mais simples dos métodos de pesquisa, consiste na comparação de um argumento com a chave de entrada localizada no meio da tabela, não sendo aplicável em tabelas ordenadas.

Alternativas
Comentários
  • A pesquisa ou busca binária (em inglês binary search algorithm ou binary chop) é um algoritmo de busca em vetores que segue o paradigma de divisão e conquista. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.

  • São dois erros:

    1) o mais simples dos métodos de pesquisa: o método mais simples de pesquisa é o sequencial

    2) não sendo aplicável em tabelas ordenadas: é só aplicável em tabelas ordenadas.

  • Na Busca Binária é fundamental que a tabela esteja ordenada.

    Usa o método de divisão e conquista.

    g: Errado

  • Gabarito Errado

    pesquisa ou busca binária (em inglês binary search algorithm ou binary chop) é um algoritmo de busca em vetores que segue o paradigma de divisão e conquista. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.

     

    A complexidade desse algoritmo é da ordem de {\displaystyle \Theta (\log _{2}n)}, em que {\displaystyle n} é o tamanho do vetor de busca. Apresenta-se mais eficiente que a Busca linear cuja ordem é {\displaystyle O(n)}.

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Força Guerreiro!!!!!!


ID
1360240
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O método de acesso de arquivos chamado aleatório é caracterizado por

Alternativas
Comentários
  • Em ciência da computação, acesso aleatório é a capacidade de acessar um elemento arbitrário de uma seqüência em tempo igual.

    O contrário é o acesso sequencial, onde um elemento mais distante leva mais tempo para ser acessado.

    Uma forma típica de diferenciar ambos é comparar um antigo rolo de pergaminho (sequencial— todo o material que antecede os dados desejados deve ser desenrolado) e um livro (aleatório— pode ser aberto imediatamente em qualquer página aleatória).

    Um exemplo mais moderno é comparar a fita cassete(sequencial—você tem de fazer um avanço rápido pelas canções no início da fita para poder chegar às últimas) com o CD-ROM (acesso aleatório—você pode pular direto para a faixa desejada). 

  • Força Guerreiro!!!!!!


ID
1404427
Banca
FGV
Órgão
PROCEMPA
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere uma busca por uma chave entre 1.000.000, que pode ser feita através de uma Busca binária, Hashing ou Árvore B de ordem 20.

Supondo que os três operam em condições semelhantes e satisfatórias, com os registros armazenados num disco rígido, assinale a opção que mostra as alternativas na ordem do menor para o maior tempo de busca

Alternativas
Comentários
  • Hashing possui o menor tempo de busca. Com essa informação é possível matar a questão.

    Vamos na fé.

  • Força Guerreiro!!!!!!


ID
1452559
Banca
CESPE / CEBRASPE
Órgão
TRE-GO
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com referência à organização de arquivos, julgue o próximo item.

Uma vantagem do arquivo direto é poder determinar funções que gerem menor número de colisões.

Alternativas
Comentários
  • Arquivo direto é um tipo de organização que ao invés de um índice é utilizada uma função (hashing) que calcula o endereço do registro a partir do valor da chave do registro. Determinar funções que gerem menor número de colisões é algo dificil. Logo, trata-se de uma desvantagem e não uma vantagem.

    http://www.ufpa.br/sampaio/curso_de_estdados_2/organizacao_arquivos/organizacao_arquivos.htm#8

  • Desvantagens: Uso de funções para se obter endereços do arquivo pode causar colisões

     

  • Não entendo como desvantagem o fato de você ter uma função para determinar o valor. Pois, ao invés de percorrer varios elementos, com uma função você já chega ao dado desejado. Desvantagem seria a complexidade para determinar essa função, mas, uma vez determinada, isso torna-se uma vantagem para o algoritmo. Acho que a questão pecou na descrição. Analogicamente é igual você falar que ter uma moto é vantajoso para não pegar engarrafamento. Realmente é, mas se for pensar que é mais perigoso, que é necessária uma carteira diferente e tudo mais, que é suscetível a chuva, torna-se uma desvantagem ter moto. Então depende do ponto de vista. Eu entendo que poder ter essa função é uma vantagem, mas fazer o que se o CESPE entende diferente.

  • Força Guerreiro!!!!!!


ID
1562254
Banca
Marinha
Órgão
Quadro Técnico
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Segundo Szwarcifiter e Markenzon (2010), um aspecto fundamental no estudo das árvores de busca é, naturalmente, o custo de acesso a uma chave desejada.

Sendo assim, assinale a opção que apresenta o tipo de árvore cuja organização visa a minimizar o número de comparações efetuadas no pior caso para uma busca com chaves de probabilidades de ocorrência idênticas.

Alternativas
Comentários
  • Segundo Szwarcfiter, a complexidade de uma busca para uma árvore T é igual, no pior caso, à sua altura, por isso é melhor tentar uma construção da árvore T com altura mínima possível. A árvore que possui essa propriedade para um conjunto de n chaves é a completa. Nesse caso, a complexidade do algoritmo é O(log n).

  • Complementando:

    Árvore completa
    - se algum nó tem uma subárvore vazia, então esse nó pertence ao último ou penúltimo nível;
    - toda árvore cheia é uma árvore completa;

    Árvore cheia
    - todos os nós, exceto as folhas, tem o número máximo de filhos;
    - todas as folhas estão na mesma altura;


ID
1567027
Banca
COSEAC
Órgão
UFF
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em relação aos algoritmos de pesquisa em um vetor de N elementos, é correto afirmar que:

Alternativas
Comentários
  • a) ERRADA. O vetor deve estar previamente ordenado

    b) ERRADA. A distribuição das chaves deve ser uniforme.

    c) ERRADA. O tempo médio da busca sequencial é N/2.

    d) ERRADA. Possui quantidade máxima de busca de O(logn)

    e) CORRETA.

  • O algoritmo de busca linear é um algoritmo O(n). No caso médio, o elemento é encontrado após N/2

    O algoritmo de busca binária possui complexidade O(Log N base 2)

    Na busca por Interpolação, se as chaves estiverem uniformemente distribuídas a complexidade é O(log(log(n))), Se as chaves não estiverem uniformemente distribuídas, a busca por interpolação pode ser tão ruim quanto uma busca seqüencial

  • A - A pesquisa binária necessita que o vetor esteja previamente ordenado.

    B - A busca por interpolação é mais adequada quando existe uma distribuição uniforme nas chaves.

    C - A busca sequencial possui tempo médio da ordem de log N/2.

    D - A pesquisa binária possui uma quantidade máxima de buscas da ordem de O(logn).

  • Força Guerreiro!!!!!!


ID
1699096
Banca
Aeronáutica
Órgão
EEAR
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considerando os métodos de pesquisa em uma matriz. O método de pesquisa ____________ divide a lista em duas partes e “procura" saber se a informação a ser pesquisada está acima ou abaixo da linha de divisão.

Alternativas
Comentários
  • Divide a lista em duas partes: Binária.


ID
1740766
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue o item subsequente a respeito de métodos de acesso.

A busca binária é mais eficiente do que a busca sequencial, uma vez que naquela o vetor que contém o valor a ser pesquisado está sempre ordenado pela chave de busca.

Alternativas
Comentários
  • Gabarito Certo

    pesquisa ou busca binária (em inglês binary search algorithm ou binary chop) é um algoritmo de busca em vetores que segue o paradigma de divisão e conquista. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Força Guerreiro!!!!!!


ID
1822948
Banca
CESPE / CEBRASPE
Órgão
TRE-PI
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A respeito da organização de arquivos, assinale a opção correta.

Alternativas
Comentários
  • a) ERRADA. para se realizar uma busca binária, as chaves obrigatoriamente devem estar ordenadas

    b) ERRADA. Pode-se utilizar uma árvore binária sim. Aliás, uma arvore AVL é uma árvore binária balanceada.

    c) ERRADA. A estrutura de indexação não depende da ordem física do arquivo. Ele utiliza a chave de acesso.

    d) CORRETA.

    e) ERRADA. Um arquivo pode ter vários índices. Eles não organizam o arquivo por sua chave. 

    Fonte: http://www.eng.uerj.br/~fariasol/disciplinas/LABPROG/C_language/temas%20diversos/files/sequencial_indexado.pdf

  • Força Guerreiro!!!!!!


ID
1827088
Banca
FGV
Órgão
DPE-RO
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Num algoritmo de busca binária sobre um array linear de N elementos, com chaves ordenadas, o número máximo de iterações para localizar uma determinada chave é:

Alternativas

ID
1839262
Banca
FCC
Órgão
DPE-SP
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Quando um arquivo sequencial está armazenado em um dispositivo de acesso direto (como um disco magnético), a consulta de um registro é feita de forma mais eficiente através do processo denominado de Pesquisa.

Alternativas
Comentários
  • Alguém comenta? Não concordei com o gabarito. A pesquisa binária só pode ser feita se o arquivo estiver em ordem. Nada foi dito sobre isso. Como o arquivo é sequencial, o mais correto seria ler serialmente ou seja sequencialmente, mesmo que o dispositivo seja um disco.

  • Rosana, eu entendi como arquivo sequencial que o arquivo está em ordem. E, estando em ordem, não deve ser serial, pois se o item que estiver sendo procurado for o último ele percorrerá toda a lista para encontrá-lo. Se for binária ele chegará a resposta mais rápido, pois não precisará ver item por item.

  • 6.4.1. Arquivo sequencial 

    Nesse tipo de arquivo, os registros são gravados em ordem sequencial por suas respectivas chaves, havendo, pois, uma perfeita ordenação tanto lógica quanto física. A chave de cada registro é um atributo comum a todos eles e, em princípio, capaz de individualizar cada um; o nome, por exemplo, não é uma chave ideal no cadastro de uma empresa, tendo em vista a possibilidade de homônimos; já o número de matrícula apresenta-se como excelente atributo para esse fim. 
    Se, em um arquivo sequencial, não se elege qualquer atributo para chave, os registros são arquivados simplesmente de acordo com sua ordem de chegada, caracterizando um arquivo serial. 
    A principal vantagem do arqujvo sequencial é o rápido acesso aos registros, quando a maior parte deles tem que ser pesquisada, seja em tarefas de mera consulta ou em trabalhos de atualização. 
    Ele poderá estar armazenado em veículos de acesso sequencial (DVD) ou de acesso direto (disco magnético). Nesse último caso, a consulta de um registro é feita através do processo denominado pesquisa binária: é lido inicialmente o registro desejado; em seguida, lê-se o registro central dessa metade e, assim sucessivamente, até que, diante de um segmento relativamente curto do arquivo, é feita uma busca sequencial. 

    FONTE: 

    Informática: Conceitos Básicos

    Por Fernando Velloso

  • Força Guerreiro!!!!!!


ID
1894213
Banca
FGV
Órgão
AL-MT
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O tempo médio de acesso, por meio de pesquisa binária em blocos, para encontrar um registro específico de um arquivo ordenado com m blocos é

Alternativas
Comentários
  • log2 m

  • Força Guerreiro!!!!!!


ID
1932388
Banca
FCC
Órgão
TRT - 14ª Região (RO e AC)
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Dada uma coleção de n elementos ordenados por ordem crescente, pretende-se saber se um determinado elemento x existe nessa coleção. Supondo que essa coleção está implementada como sendo um vetor a[0...n-1] de n elementos inteiros, utilizando-se um algoritmo de pesquisa binária, o número de vezes que a comparação x==a[i] será executada, no pior caso, é calculada por

Alternativas
Comentários
  • Veja a complexidade desse algoritmo:

    complexidade caso médio{{O}(\log n)}

    complexidade melhor caso{{O}(1)}

    complexidade de espaços pior caso{{O}(\log n)}

    Gabarito: D

  • Força Guerreiro!!!!!!


ID
1998262
Banca
Aeronáutica
Órgão
EEAR
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Marque a afirmativa correta.

Alternativas
Comentários
  • Método de pesquisa binária: É um algoritmo que busca em vetores e segue o paradigma da divisão para conquista. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento buscado (chave) com o elemento no meio do vetor.

     

    Método de Pesquisa sequencial: Também conhecido como busca linear, é usado para expressar um tipo de pesquisa em vetores ou listas de modo sequencial, i. e., elemento por elemento, de modo que a função do tempo em relação ao número de elementos é linear, ou seja, cresce proporcionalmente. Num vetor ordenado, essa não é a pesquisa mais eficiente, a pesquisa (ou busca) binária, por exemplo, é um tipo de pesquisa com o gráfico de tempo logarítmo.

  • D) O método de pesquisa binária necessita de que a informação esteja previamente ordenada.

  • O método de pesquisa binária precisa que a informação esteja previamente ordenada. Tal ordenação dos dados é feita através do comando SORT.


ID
2056888
Banca
COMVEST UFAM
Órgão
UFAM
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um problema de busca consiste em determinar se um dado objeto é elemento de um vetor. Sobre o algoritmo conhecido como Busca Binária, é CORRETO afirmar:

Alternativas
Comentários
  • A: ERRADO. Algoritmo possui complexidade no pior caso O(logn).

    B: ERRADO. Complexidade da busca binária é maior e mais eficiente que a busca sequencial.

    C: ERRADO. Necessita simmm de ordenação, aliás, esse é o conceito que tem que estar tatuado no nosso cerebro.

    D: ERRADO. Pilha não, esse método exige acesso aleatório aos elementos do conjunto.

    E: CORRETO. Exatamente, VETORES ORDENADOS.

  • Força Guerreiro!!!!!!


ID
2056891
Banca
COMVEST UFAM
Órgão
UFAM
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O mergesort é um algoritmo de ordenação do tipo dividir-para-conquistar. Sua ideia básica consiste em dividir o problema em vários subproblemas, e resolver esses subproblemas por meio da recursividade e, em seguida,após todos os subproblemas terem sido resolvidos,ocorre a conquista, que é a união das resoluções dos subproblemas. O algoritmo mergesort, apresentado em seguida, está codificado em C/C++.Esse algoritmo ordena o vetor de inteiros a[p],..., a[r](onde, p<r) usando um vetor auxiliar b[p],..., b[r].O vetor a[ ] é dividido recursivamente ao meio em duas instâncias menores, que são ordenadas e então colocadas

juntas, ordenando todo o vetor. No código estão faltando as linhas que fazem a divisão por recursão (linhas 7 e 8) e as linhas que concretizam a fase de conquista, unindo todas as intercalações no vetor principal (linhas 11 e 12).


1.   voidmergesort(int a[], int p, int r)

2.   {

3.   inti,j,k,m;

4.   if (r > p)

5.   {

6.   m = (r + p)/2;

7.   …

8.   …

9.   for (i = m+1; i> p; i--) b[i-1] = a[i-1];

10. for (j = m; j < r; j++) b[r+m-j] = a[j+1];

11.  ...

12.  ...

13.  }  

14.  }

As linhas 7,8, 11 e 12, que complementam o código do mergesort de maneira CORRETA, são:

Alternativas
Comentários
  • MergeSort trabalha com recursividade, logo, podemos eliminar as alternativas B), D) e E) que utilizam uma função sort não apresentada. Desta maneiras os itens B), D) e E) falham no requisito de recursividade.

    A letra C) não faz sentido nenhum no passo 11 pois se k = m e o loop incrementa até k <=m é o mesmo que dizer que esse laço for iria funcionar apenas quando k = m. Portanto, resposta letra A)

  • Força Guerreiro!!!!!!


ID
2083387
Banca
Marinha
Órgão
CAP
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Como se denomina o método que realiza a busca por um elemento, dividindo um vetor ordenado em duas partes e testando em qual delas o elemento deveria estar, procedendo da mesma forma para a parte provável, e assim, sucessivamente, até que o elemento seja encontrado?

Alternativas
Comentários
  •  a) Busca binária

  • Ordenação rápida ( Quicksort): rápida e mais eficiente; adota a estratégia de divisão e conquista; a estratégia consiste em reorganizar as chaves de modo que as chaves "menores" precedam as chaves "maiores"; escolhe-se um elemento (pivô), em seguida a lista é organizada de forma a deixar os elementos menores à sua esquerda e o maiores à sua direita.

    Ordenação bolha ( BubbleSort): algoritmo mais simples e menos eficiente; uma interação se limita a percorrer a tabela do início ao fim, sem interrupção, trocando de posição dois elementos consecutivos sempre que estes se apresentem fora de ordem; a intenção do método é mover os elementos maiores em direção ao fim da tabela.

    Método de pesquisa sequencial: busca as informações desejadas a partir do primeiro elemento sequencialmente até o último ( mais lento).

    Ordenação em heap ( HeapSort): utiliza uma estrutura auxiliar chamada de heap ( max-heap ou min-heap) que enxerga o vetor como uma árvove binária, para ordenar em ordem crescente, o heapsort coloca o maior elemento no final do array e o segundo maior antes dele, etc.


ID
2093461
Banca
CESPE / CEBRASPE
Órgão
TCE-PA
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

No que se refere a algoritmos e estruturas de dados, julgue o item a seguir.

Embora o QuickSort e o MergeSort sejam algoritmos de ordenação do tipo divisão e conquista, somente o MergeSort utiliza intervalos de comparação denominados gap.

Alternativas
Comentários
  • "...intervalos de comparação denominados gap".

     

    O algoritmo que se baseia em "saltos" (gap) de comparação é o Shell Sort.

    "  É um refinamento do método de inserção direta. 

     O algoritmo difere do método de inserção direta pelo fato de no lugar de considerar o array a ser ordenado como um único segmento, ele considera vários segmentos sendo aplicado o método de inserção direta em cada um deles.

    Basicamente o algoritmo passa várias vezes pela lista dividindo o grupo maior em menores.

    Nos grupos menores é aplicado o método da ordenação por inserção"

    Fonte : https://pt.wikipedia.org/wiki/Shell_sort

     

    Obs.: Os "grupos menores" são definidos pelos "saltos" (gap)

  • "Gap" ou "salto" são os intervalos de comparação usados no Shellsort. 

  • Gabarito Errado

    merge sort, ou ordenação por mistura, é um exemplo de algoritmo de ordenação por comparação do tipo dividir-para-conquistar.

    Sua ideia básica consiste em Dividir (o problema em vários subproblemas e resolver esses subproblemas através da recursividade) e Conquistar (após todos os subproblemas terem sido resolvidos ocorre a conquista que é a união das resoluções dos subproblemas). Como o algoritmo Merge Sort usa a recursividade, há um alto consumo de memória e tempo de execução, tornando esta técnica não muito eficiente em alguns problemas.

     

    Os três passos úteis dos algoritmos de divisão e conquista, ou divide and conquer, que se aplicam ao merge sort são:

    Dividir: Calcula o ponto médio do sub-arranjo, o que demora um tempo constante {\displaystyle \Theta (1)};

    Conquistar: Recursivamente resolve dois subproblemas, cada um de tamanho n/2, o que contribui com {\displaystyle 2T(n/2)} para o tempo de execução;

    Combinar: Unir os sub-arranjos em um único conjunto ordenado, que leva o tempo {\displaystyle \Theta (n)}.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Força Guerreiro!!!!!!


ID
2213440
Banca
Marinha
Órgão
Quadro Técnico
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considepe o seguinte algoritmo de busca, escrito em pseudocódigo:

i := 0;

WHILE (i < N) & (a [i] <> X) DO i := i + 1 END

onde o elemento a ser encontrado é x, e N é uma constante, pode-se afirmar que este algoritmo representa uma busca

Alternativas
Comentários
  • Na área de informática, ou Ciência da Computação, costuma-se usar o termo busca linear (ou busca sequencial) para expressar um tipo de pesquisa em vetores ou listas de modo sequencial, i. e., elemento por elemento, de modo que a função do tempo em relação ao número de elementos é linear, ou seja, cresce proporcionalmente. Num vetor ordenado, essa não é a pesquisa mais eficiente, a pesquisa (ou busca) binária, por exemplo, é um tipo de pesquisa com o gráfico de tempo logarítmo.


ID
2306017
Banca
CESPE / CEBRASPE
Órgão
SEDF
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue o item seguinte, a respeito de estruturas em programação e de arquiteturas de bancos de dados.

No algoritmo denominado busca em amplitude, a árvore é percorrida visitando-se todos os nós de um ramo até se atingir os nós terminais, repetindo-se o processo em cada um dos ramos.

Alternativas
Comentários
  • Gab: E.

    Busca em largura (BFS):

    Um algoritmo de busca é um algoritmo que percorre um digrafo andando pelos arcos de um vértice a outro.  Um algoritmo de busca examina sistematicamente os vértices e os arcos do digrafo;  depois de examinar a ponta inicial de um arco, o algoritmo percorre o arco e examina sua ponta final.  Cada arco é examinado no máximo uma vez.

    Há muitas maneiras de organizar uma busca.  Cada estratégia de busca é caracterizada pela ordem em que os vértices são examinados.   Esta página introduz abusca em largura (= breadth-first search = BFS), ou busca BFS.  Essa estratégia está intimamente relacionada com os conceitos de distância e caminho mínimo.

    https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/bfs.html

  • A busca em largura começa por um vértice, digamos s, especificado pelo usuário.  O algoritmo visita s, depois visita todos os vizinhos de s, depois todos os vértices que estão à distância 2 de s, e assim por diante.  (O conceito de distância será definido precisamente na próxima página.)  O algoritmo numera os vértices, em sequência, na ordem em que eles são descobertos.

    Fonte:

    https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/bfs.html

     

  • Na teoria dos grafos, busca em largura (ou busca em amplitude, também conhecido em inglês por Breadth-First Search - BFS) é um algoritmo de busca em grafos utilizado para realizar uma busca ou travessia num grafo e estrutura de dados do tipo árvore. Intuitivamente, você começa pelo vértice raiz e explora todos os vértices vizinhos. Então, para cada um desses vértices mais próximos, exploramos os seus vértices vizinhos inexplorados e assim por diante, até que ele encontre o alvo da busca.

  • O erro da questão está em afirmar que repete o processo em cada um dos ramos, quando na verdade o algoritmo examina, no máximo, uma vez cada um.

  • Para quem quiser entender como funciona a  busca em largura ( Breadth-First Search - BFS ): https://www.youtube.com/watch?v=u834GA3725M

  • Descreveram uma busca em proundidade.

  • Força Guerreiro!!!!!!


ID
2402674
Banca
COSEAC
Órgão
UFF
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Avalie se são verdadeiras (V) ou falsas (F) as afirmativas a seguir.

I O método de busca “pesquisa binária” necessita de um ordenamento prévio do vetor.

II O método “pesquisa binária” possui o tempo de busca maior que o método “busca sequencial”.

III O método “busca sequencial” é mais indicado quando se sabe antecipadamente que a maior parte dos registros necessita ser pesquisada.

As afirmativas I, II e III são, respectivamente:

Alternativas
Comentários
  • I. Correto. É uma das premissas da busca binária.

    II. Errado. Busca binária é o(log n) e a Sequencial é o(n). 

    III.Correto. A busca antecipada é uma boa prática quando utilizamos o acesso sequencial.  

  • Força Guerreiro!!!!!!


ID
2409274
Banca
FUNDEP (Gestão de Concursos)
Órgão
UFVJM-MG
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Analise o trecho de código a seguir.
Avariável x representa o elemento de referência passado como parâmetro
while( inicio <= termino )
{
meio = ( inicio + termino ) / 2;
if( a[ meio ].compareTo( x ) < 0 )
inicio = meio + 1;
else if( a[ meio ].compareTo( x ) > 0 )
termino = meio - 1;
else
return meio;
}
A qual algoritmo esse código pertence?

Alternativas
Comentários
  • O gabarito é a letra A. 

     

    A pesquisa ou busca binária é um algoritmo de busca em vetores que segue o paradigma de divisão e conquista. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.

  • Uma das maiores diferenças para o "quick-sort", item (D) (da árvore binária, item (A) e do "heap-sort", item (B)) é que neste algoritmo um elemento qualquer é escolhido (geralmente aleatório) para ser o "pivot". Assim, à esquerda desse "pivot" os elementos menores são ordenados inicialmente, depois elege-se um novo "pivot" para a outro lado (o direito), ordenando-se esta segunda parte os elementos.

    Podem ser eleitos vários "pivots" durante a ordenação.

    A árvore binária sempre procura dividir os elementos a serem ordenados em dois grupos, partindo da metade dos elementos a serem ordenados, assim, sucessivamente, até restar dois, é parecido, nesta etapa (somente) com o "merge-sort", contudo as estruturas, "árvore-binária" X merge-sort são bem distintas, a primeira ("árvore-binária") não é uma estrutura linear, já a segunda ("merge-sort") é.

    Já a "heap-sort" (é muito parecida com as árvores) diferencia-se da árvore por colocar os elementos maiores (caso seja ordenação crescente) no final do vetor, e, além disso, numa etapa anterior o algoritmo heap-sort ordena de forma decrescente a árvore (meio confuso mas é eficiente), para, só na etapa final ordenar de forma decrescente (caso seja para ordenar neste sentido).

  • Força Guerreiro!!!!!!


ID
2486002
Banca
FGV
Órgão
IBGE
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Para poder ser aplicado, o algoritmo de pesquisa binária exige que os elementos do array:

Alternativas
Comentários
  • A pesquisa ou busca binária (em inglês binary search algorithm ou binary chop) é um algoritmo de busca em vetores que segue o paradigma de divisão e conquista. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento buscado (chave) com o elemento no meio do vetor

     

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

  • OPÇAO B

  • Força Guerreiro!!!!!!


ID
2542402
Banca
CESPE / CEBRASPE
Órgão
TRT - 7ª Região (CE)
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere que um algoritmo de pesquisa, em um arquivo previamente ordenado, é caracterizado por realizar comparação de chaves e sucessivas divisões no espaço de busca até encontrar o termo pesquisado ou até haver um único registro. Trata-se de um algoritmo de

Alternativas
Comentários
  • Gabarito B

    A busca binária é um eficiente algoritmo para encontrar um item em uma lista ordenada de itens. Ela funciona dividindo repetidamente pela metade a porção da lista que deve conter o item, até reduzir as localizações possíveis a apenas uma. Nós usamos a busca binária em um jogo de adivinhação no tutorial introdutório.

    Um dos modos mais comuns de se usar a busca binária é para encontrar um item em um array. Por exemplo, o catálogo estelar Tycho-2 contém informações sobre as 2.539.913 estrelas mais brilhantes na nossa galáxia. Suponha que você queira buscar por uma estrela em particular no catálogo, com base no nome da estrela. Se o programa examinou cada estrela do catálogo de estrelas em ordem começando com o primeiro nome, utilizando um algoritmo chamado busca linear, no pior caso, o computador pode ter examinado todas as 2,539,913 estrelas para encontrar a estrela que você está procurando. Se o catálogo estivesse organizado alfabeticamente pelos nomes das estrelas, a busca binária não teria que examinar mais do que 22 estrelas, mesmo no pior caso.

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • pesquisa ou busca binária (em inglês binary search algorithm ou binary chop) é um algoritmo de busca em vetores que segue o paradigma de divisão e conquista. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.

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

     

  • BUSCA BINÁRIA:

     

     A ideia básica do algoritmo é percorrer o vetor como se folheia, por exemplo, uma lista telefônica. Abandonando-se as partes do catálogo onde o nome procurado, com certeza, não será encontrado.
     Para a realização desse tipo de busca, o vetor deve estar ordenado.
     Esse método exige acesso aleatório aos elementos do conjunto.
     Algoritmo possui complexidade no pior caso O(logn).
     O pior caso ocorre quando o elemento procurado é o último a ser verificado, ou mesmo não é encontrado.

     

    Fonte: Itnerante

  • Busca Binária

    Utiliza o método do “dividir para conquistar”: busca o elemento do meio da coleção, dividindo-a em duas sub-coleções

    • Compara-se o valor procurado com o elemento no centro da coleção:

    – Se for igual, encontrou;

    – Se for menor, repete a busca na sub-coleção à esquerda do centro;

    – Se for maior, repete a busca na sub-coleção à direita do centro;

    • Não funciona sobre coleções não-ordenadas!

    • Ordem de Complexidade: O(log2 n)

    • No pior caso são realizadas “log2 n” comparações

    Busca Sequencial

    •Caminha de um por um procurando o valor

    • Mais lenta quanto maior for a coleção

    • Pode ser realizada também em estruturas não ordenadas

    • Simples

    • Ordem de Complexidade: O(n)

    • No pior caso, são realizadas “n” comparações

  • Força Guerreiro!!!!!!


ID
2607451
Banca
FCC
Órgão
DPE-AM
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere que na Defensoria há uma lista ordenada com o nome de 1000 cidadãos amazonenses. Utilizando o método de pesquisa binária para localizar o nome de um destes cidadãos, serão necessárias, no máximo,

Alternativas
Comentários
  • b) 10 Comparações. Log 1000 na base 2.

  • 2^9 = 512

    2^10 = 1024

    sabemos que o número está na casa do ^9.

     

    A fórmula é log n + 1, ou seja, log1000 + 1 --> 9 + 1 = 10

     

    @papirobizurado

  • Pesquisa Binária é log do no.elementos na base 2, aqui é

    =log 10**3 na base 2

    ...transformando log na base 2 em log na base 10, dividimos o log do no.desejado, só que na base 10 por log de 2 na base 10, temos:

    =log 10**3 na base 10/log 2 na base 10

    =3/3/10

    =3*10/3

    =30/3

    =10

  • Vocé também pode fazer divisões sucessivas até chegar em 0:

    1 comparação - 1000/2 =500

    2 comparação - 500/2 = 250

    .

    .

    .

    10 comparação 1, 96... / 2= 0, 97...

  • Potencia de base 2, como temos 1000 comparações serão no mínimo 10, pois 2^10 = 1024.

  • Força Guerreiro!!!!!!


ID
2629822
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue o item seguinte, quanto aos conceitos da programação estruturada e da programação orientada a objetos e aos métodos de ordenação, pesquisa e hashing.


Na pesquisa do tipo sequencial, há aumento do desempenho se a tabela estiver ordenada pelo valor da chave.

Alternativas
Comentários
  • Com certeza. A busca sequencial analisa índice por índice 1 à 1. Com a ordenação você faz testes baseados na metade do vetor. reduzindo-o pela metade até encontrar o número desejado.

  • Vitor, esse se trata de busca binária, não sequencial

  • Busca sequencial em tabela ordenada:

    A eficiência da operação de busca melhora se as chaves dos registros estiverem ordenadas:

    *No pior caso (caso em que a chave não é encontrada), são necessárias N comparações quando as chaves estão desordenadas

    *No caso médio, N/2 comparações se as chaves estiverem ordenadas, pois se para a busca assim que uma chave maior do que a procurada é encontrada.

     

    Fonte: https://edisciplinas.usp.br/pluginfile.php/2175246/mod_resource/content/1/ICC2_12.Busca.pdf

  • Não entendi porque há um aumento de desempenho. Independente de o vetor estar ordenado ou não, a busca sequencial passa por todos os elementos a partir do primeiro até encontrar o desejado.

  • @Rafael Costa, fiquei com a mesma dúvida que você, mas lendo com mais atenção o comentário que o @Guilherme Navarro escreveu, eu acho que entendi e vou tentar compartilhar o passo-a-passo que fiz usando um exemplo:

    CASO 1) - Tenho o vetor A ordenado com os valores [12,25,33,37,48,57,86,92], onde N (tamanho) = 8 e desejo buscar pelo valor "51".

    CASO 2)- Tenho vetor B não ordenado com os valores [56,12,67,98,34,08,33,10], onde N (tamanho) = 8 e desejo buscar pelo valor "51".

    Agora copiando o a explicação do @Guilherme Navarro adicionando o exemplo:

    *No pior caso (caso em que a chave não é encontrada), são necessárias N comparações quando as chaves estão desordenadas

    No caso 2 - será necessário N comparações - ou seja - 8 comparações pois a ausência de ordenação obriga a percorrer todo o vetor em busca do valor 51.

    *No caso médio, N/2 comparações se as chaves estiverem ordenadas, pois se para a busca assim que uma chave maior do que a procurada é encontrada.

    No caso 1 - será necessário 6 comparações para descobrir que o valor 51 não consta no vetor e parar a leitura sequencial, uma vez que o valor 57 é maior que o valor procurado (51).

    Logo, eu entendi que a ordenação ajuda no caso médio. Claro que mesmo ordenado, se o valor procurado é superior ao valor da última posição, você irá percorrer sequencialmente todo o vetor fazendo as N comparações - que também é o pior caso (procurar o valor 98 no vetor A).

    Espero que tenha ajudado e caso o meu entedimento esteja equivocado podem me corrigir !

  • Vai haver uma melhora no desempenho porque o método de pesquisa sequencial é o mais simples, ele vai percorrendo o vetor sequencialmente, do primeiro ao último elemento do vetor. 

     

    Ex1.
    [ 4 7 2 1 3 6 5] //repare que aqui o  esforço será maior p organizar em sequencia, pq no final o método de pesquisa sequencnial irá deixar esse vetor assim: [4 7 2 1 3 6 5]

     

    Ex2.

    [1 2 3 4 5 6 7] //repare que se meus valores já estão organizados em sequencia o sacrifício de organizar os valores do vetor será totalmente eliminado, melhorando o desempenho.


             

  • Força Guerreiro!!!!!!


ID
2673085
Banca
Aeronáutica
Órgão
EEAR
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Método de pesquisa que exige que a matriz esteja previamente classificada, pois divide uma lista em duas partes e verifica se a informação a ser pesquisada está acima ou abaixo da linha de divisão; se estiver acima, toda a metade abaixo é desprezada; em seguida, se a informação não foi encontrada, é novamente dividida em duas partes e, assim, sucessivamente.


A qual método de pesquisa o texto se refere?

Alternativas
Comentários
  • b) binária

  • Sequencial -> Busca a informação desejada a partir do primeiro elemento sequencialmente até o ultimo. ( mais lento )

    Binária -> Divide a lista em duas partes . Exige que a matriz esteja previamente classificada. É mais rápido que o sequencial.


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!!!!!!


ID
2801395
Banca
CESGRANRIO
Órgão
Transpetro
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere uma árvore binária de busca (BST) com n (n>3) níveis (o nó raiz está no nível 1), 2n - 1 nós e todas as chaves diferentes. Suponha, ainda, que algum dos pais de duas folhas seja removido da árvore e, mais tarde, uma chave com o mesmo valor da chave do nó removido seja inserida na árvore.


Quantas são as comparações necessárias para fazer a busca e encontrar o nó cuja chave foi removida e depois reinserida?

Alternativas
Comentários
  • Não seria n + (n-1) comparações?

  • O texto da questão está incorreto, o número de nós é 2^n - 1 (2 elevado a n e não 2 vezes n).

    Retirando qualquer um dos nós que é pai de duas folhas (no penúltimo nível da árvore (n - 1)), ele terá que ser reinserido um nível abaixo do último nível, ou seja, o número de comparações necessárias será n+1.

  • Força Guerreiro!!!!!!

  • Considere a árvore com n = 3 níveis e 2³-1 = 7 nós:

    .......... ( 10 ) nível 1

    ........../ \

    .......( 6 )....( 15 ) nível 2

    ....../ \.........../ \

    ( 1 ) ( 8 ) ( 13 ) ( 20 ) nível 3

    Um nó é pai de duas folhas quando está no nível 2 (ou seja n-1), pois as folhas são aquelas que não contém filhos.

    Caso o nó 6 seja removido e reinserido, ele perderá seus filhos e virará um nó folha.

    .......... ( 10 ) nível 1

    ........../ \

    .......( 6 )......( 15 ) nível 2

    ....................../ \

    ................ ( 13 ) ( 20 ) nível 3

    Suponha que quero saber se 15 foi o nó que perdeu seus filhos. Para isso, comparo primeiro a raiz e vou descendo: para a esquerda se for menor ou igual e para a direita se for maior.

    .......... ( 10 ) 10 <= 15 +1 comparação

    ........../ \

    .......( 6 )......( 15 ) 10 <= 15 +1 comparação

    ....................../ \

    ................ ( 13 ) ( 20 )

    Porém, não é só porque achei o 15 que ele foi removido e reinserido. É preciso adicionalmente checar se o 15 é um nó nulo, ou seja, se seus dois filhos são inexistentes. Isso significa adicionar 2 ao total de comparações. Ou seja, no total são 4 (n+1): as duas primeiras para chegar ao nó e mais duas para checar seus filhos.


ID
2858710
Banca
CCV-UFC
Órgão
UFC
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Na estrutura de dados min heap (heap mínima), qual das afirmativas abaixo é verdadeira?

Alternativas
Comentários
  • Os nós pais possuem valores menores que os filhos
  • O algoritmo min heap á estruturado pois deve respeitar que um índice i só tem filho esquerdo se 2i ≤ n; e i só tem filho direito se 2i+1 ≤ n. um índice i só tem filho esquerdo se 2i ≤ n; e i só tem filho direito se 2i+1 ≤ n

    Estrutura em arvore binaria

    1

    2----------------3

    4--------------5 6--------------7

  • Heap (monte) é uma estrutura de dados especializada, baseada em árvore, que é essencialmente uma árvore quase completa que satisfaz a propriedade heap:

    heap máxima: se P é um  pai de C, então o valor de P é maior ou igual ao valor de C.

    heap mínima: se P é um  pai de C, então o valor de P é menor ou igual ao valor de C

    O nó no "topo" da heap (sem pais) é chamado de nó raiz.

    Fonte: https://pt.wikipedia.org/wiki/Heap

  • Não falou nada com nada... ????????????????

  • Força Guerreiro!!!!!!

  • As letras a) e b) se acusam, pois se uma fosse verdadeira, a outra também seria. Como a questão pede UMA correta, sobra a letra C, pois como a Heap é mínima, é possível deduzir que ou um nó filho, ou um nó pai é o menor sempre.

  • Consoante TANENBAUM

    É possível também definir um heap ascendente (ou um min heap) como uma árvore binária quase completa de modo que o conteúdo de cada nó seja maior ou igual ao conteúdo de seu pai. Num heap ascendente, a raiz contém o menor elemento do heap, e qualquer percurso da raiz para uma folha é uma lista ordenada ascendente.

    GABARITO

    A e B são a mesma coisa como o colega leandro citou

    A = CADA NÓ SEJA MAIOR OU IGUAL AO CONTEÚDO DE SEU PAI

    B = MAIOR OU IGUAL AO CONTEÚDO DO SEU PAI

    D = ÁRVORE BINÁRIA QUASE COMPLETA

    E = ÁRVORE BINÁRIA QUASE COMPLETA

    TANENBAUM.


ID
2950771
Banca
FGV
Órgão
DPE-RJ
Ano
2019
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere os seguintes métodos de busca/indexação:


I. Busca binária

II. Tabelas hash

III. Índices B-trees


Considere ainda um universo de busca com aproximadamente um milhão de chaves, para o qual cada método tenha sido implementado adequadamente.

Num benchmark extensivo, cada método apresentou um número médio de acessos até que cada chave fosse localizada.

Esses tempos médios, em ordem crescente, correspondem aos métodos:

Alternativas

ID
2984635
Banca
CS-UFG
Órgão
IF Goiano
Ano
2019
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere um vetor de números inteiros, em que se deseja buscar um dos elementos que está presente neste vetor. O algoritmo de busca binária requer que

Alternativas
Comentários
  • No algoritmo de busca binária os elementos precisam estar ordenados!!!

  • Força Guerreiro!!!!!!

  • - Busca Binária = Parte-se do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca, comparando o elemento chave com o elemento do meio do vetor. A cada comparação elimina metade dos elementos da lista. Tem que estar ordenada.

    Pior caso = O(log n)

    Caso médio = O(log n)

    Melhor caso = 1

    GAB C


ID
3007909
Banca
Marinha
Órgão
Quadro Técnico
Ano
2019
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

De acordo com Szwarcfiter e Markenzon (2010), assinale a opção correta.

Alternativas
Comentários
  • ERRADA - A - A idéia é justamente manter o custo de acesso na mesma ordem de grandeza de uma árvore ótima, ou seja, O(log n).

    ERRADA - B - Além das duas operações, existe ainda a seleção do elemento de maior prioridade.

    CORRETA - C - Na busca digital a chave é constituída de um conjunto de caracteres ou dígitos definidos em um alfabeto apropriado.

    ERRADA - D - No processamento de cadeias, o problema de codificação de mensagens é que aparece na transmissão de mensagens em uma rede. Dada uma cadeia de caracteres, denominada mensagem, o problema consiste em codificá-la através da atribuição de códigos a seus caracteres, de modo a minimizar o comprimento total da mensagem codificada.

    Já o problema de casamento de cadeias acontece, por exemplo, na edição de textos. Este problema tem duas soluções: método de força bruta e o algoritmo de Knuth, Morris e Pratt.

    ERRADA - E - Uma árvore estritamente binária é uma árvore binária em que cada nó possui 0 ou 2 filhos.

    Fonte: SZWARCFITER, Jayme L.; MARKENZON, Lilian. Estruturas de Dados e seus Algoritmos. 3.ed. LTC, 2010. 

  • Pega o bizu lá na mentoria @coach_bizurado


ID
3015613
Banca
FAURGS
Órgão
UFRGS
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Pesquisa Binária e Hash Code são duas técnicas de busca de dados em um arquivo ou tabela muito usados em informática, com grande vantagem sobre a Pesquisa Sequencial. Sobre essas técnicas, assinale a afirmação INCORRETA.

Alternativas
Comentários
  • e-

    In computing, a hash table (hash map) is a data structure that implements an associative array abstract data type, a structure that can map keys to values. A hash table uses a hash function to compute an index, also called a hash code, into an array of buckets or slots, from which the desired value can be found.

    https://en.wikipedia.org/wiki/Hash_table

  • Força Guerreiro!!!!!!


ID
3015640
Banca
FAURGS
Órgão
UFRGS
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere um método busca que recebe como parâmetros um elemento x do tipo inteiro e um vetor V de inteiros. O objetivo do método é verificar se o elemento x está contido no vetor V. Em caso positivo, a posição de x em V é retornada. Caso contrário, o valor -1 é retornado. Assim, por exemplo, se o método busca é executado com V = [1,7,5] e x = 2, o valor -1 é retornado. Se o método busca é chamado com V = [1,7,5] e x = 7, o valor 1 é retornado.

Usando a técnica de teste funcional, a seguinte partição do domínio de entrada foi definida:


Característica: localização do elemento na lista

Bloco 1: elemento é o primeiro da lista

Bloco 2: elemento é o último da lista

Bloco 3: elemento está em alguma posição na lista, exceto na primeira e na última


Tendo em vista que cada teste é composto por uma tupla (V, x), assinale a alternativa que apresenta, de forma correta, o conjunto de testes definidos com base na partição acima.

Alternativas
Comentários
  • Força Guerreiro!!!!!!


ID
3015658
Banca
FAURGS
Órgão
UFRGS
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Qual é o método de pesquisa, no qual os registros armazenados em uma tabela são diretamente endereçados a partir de uma função aritmética sobre a chave de pesquisa?

Alternativas
Comentários
  • Conceito de hash(Tabela de dispersão)(Tabela de espalhamento): Os registros armazenados em uma tabela são endereçados a partir de uma transformação aritmética sobre a chave de pesquisa.

     

     

    https://www2.unifap.br/furtado/files/2016/11/Aula7.pdf

  • Força Guerreiro!!!!!!

  • GABARITO B

    Tabela Hash: Os  elementos  são  inseridos,  removidos  ou   pesquisados em uma posição determinada por uma função de hashing (ou função de dispersão),  que, conforme uma chave de entrada, determina qual a posição que o elemento deve seguir.


ID
3030748
Banca
IDECAN
Órgão
IF-PB
Ano
2019
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Basicamente, existem dois métodos de pesquisa em um vetor de números, a Busca Linear e a Busca Binária. A Busca Binária é mais eficiente do que a Busca Linear, mas ela só funciona se o vetor estiver ordenado. Assinale a alternativa que indique a ordem de complexidade do pior caso da Busca Binária em um vetor de n números ordenados.

Alternativas
Comentários
  • pior caso: sempre é o O(log n)

  • Em busca binária, teremos:

    Pior caso: O(log n)

    Caso médio: O(log n)

    Melhor caso: 1

    GABARITO ALTERNATIVA C

  • DICA IMPORTANTE! Se o algoritmo divide por 2, a complexidade possui log
  • Força Guerreiro!!!!!!


ID
3172807
Banca
IF-PE
Órgão
IF-PE
Ano
2019
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Sobre algoritmos de busca, analise as informações a seguir.


I. Uma busca linear sobre um array de uma dimensão pode ser implementada com um laço e possui complexidade, no pior caso, linearmente relacionada ao tamanho do array.

II. Uma busca binária sobre um array de uma dimensão pode ser implementada com um laço e possui complexidade, no pior caso, linearmente relacionada ao logaritmo do tamanho do array.

III. Uma busca binária recursiva sobre um array de uma dimensão pode ser implementada sem laços e possui complexidade, no pior caso, linearmente relacionada ao logaritmo do tamanho do array.

IV. Uma busca linear sobre um array de duas dimensões pode ser implementada com dois laços e possui complexidade, no pior caso, linearmente proporcional à soma da quantidade de linhas e colunas do array.

V. Uma busca em uma estrutura de dados chamada Tabela de Dispersão (Hash Table) pode ser implementada sem laços e possui complexidade, no pior caso, constante, independentemente do tamanho do array.


Estão CORRETAS, apenas, as proposições

Alternativas
Comentários
  • IV - Não é soma, mas a multiplicação de linhas por colunas

    V - Hash Table tem, em média, complexidade O(1), ou seja, independente do tamanho. Mas, no pior caso, quando há n elementos e n colisões, a complexidade será O(n)

  • Força Guerreiro!!!!!!


ID
3180454
Banca
CESGRANRIO
Órgão
Transpetro
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um método que implementa um algoritmo de busca binária recebe como parâmetros um vetor de inteiros ordenados descendentemente, o comprimento desse vetor e um número inteiro que se deseja localizar no vetor. O cabeçalho desse método é o seguinte:

                                                             public int buscaBin(int vet[], int n, int val)

Admitindo-se que o vetor passado como parâmetro tenha 750 elementos, qual será o número máximo de iterações que o algoritmo irá realizar até que o valor (val) seja localizado ou que seja detectado que esse valor não se encontra no vetor?

Alternativas
Comentários
  • 750 / 2 = 375 (1)

    375 / 2 = 187 (2)

    187 / 2 = 93 (3)

    93 / 2 = 46 (4)

    46 / 2 = 23 (5)

    23 / 2 = 11 (6)

    11 / 2 = 5 (7)

    5 / 2 = 2 (8)

    2 / 2 = 1 (9)

    O número máximo de iterações para que o elemento seja encontrado ou seja detectado que esse número não se encontra no vetor não é 9? Por que 10?

  • @Marcelinho:

    .

    2 / 2 = 1 (9) <= aqui ele tem que fazer DUAS comparações, porque ele precisa saber se o elemento existe ou não, e não somente a posição. Então ele tem que comparar os dois elementos que restam pra saber se um deles é o elemento procurado.

    .

    Do jeito que você fez a conta você assumiu que o elemento de fato existe no conjunto e que é só achar a posição dele, quando na verdade você não sabe se ele existe ou não.

  • A posição central do vetor não pode ser um número quebrado, portanto se soma uma posição ao meio.

    750 / 2 = 375 ----------- (1)

    375 / 2 = 187 + 1 ------ (2)

    188 / 2 = 94 ------------- (3)

    94 / 2 = 47 + 1 --------- (4)

    48 / 2 = 24 -------------- (5)

    24 / 2 = 12 -------------- (6)

    12 / 2 = 6 ---------------- (7)

    6 / 2 = 3 + 1 ------------- (8)

    4 / 2 = 2 ------------------ (9)

    2 / 2 = 1 ----------------- (10)

    https://www.youtube.com/watch?v=gpCnXU-1FNA

  • É possível fazer dessa forma também: número de iterações para buscar com a busca binária

    é da complexidade de log2 (N), arredondado para cima.

    log2 (750). Ao aplicarmos a definição de logaritmo:

    2^x = 750

    Poderíamos calcular trocando a base do log, resolvendo tudo,... mas sabendo que: 2^9 = 512 e 2^10 = 1024,

    é possível inferir que x está entre 9 e 10. Como arredondamos para cima, nº máx de iterações será igual a 10.


ID
3189349
Banca
IF-MT
Órgão
IF-MT
Ano
2019
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Analise as sentenças relacionadas abaixo, retiradas da obra Projeto de algoritmos com implementações em Pascal e C, de Ziviani (1999), acerca de métodos de pesquisa em memória primária.
I - Método de pesquisa para registros ordenados que consiste em comparar a chave com o registro que está no meio da tabela, se a chave é menor, então o registro procurado está na primeira metade da tabela; se a chave é maior, então o registro procurado está na segunda metade da tabela. O processo é repetido até que a chave seja encontrada ou retorne pesquisa sem sucesso.
II - Neste método de pesquisa, podemos implementá-lo de duas maneiras: não-balanceada e balanceada. Ambas possuem nodos, todo nodo interno contém um registro e, para cada nodo, a seguinte propriedade é verdadeira: todos os registro com chaves menores estão à esquerda, e todos os registros com chaves maiores estão à direita.
III - O método de pesquisa mais simples que existe e funciona da seguinte forma: a partir do primeiro registro, pesquise sequencialmente até encontrar a chave procurada ou o fim do registro e, então, pare.

Tais sentenças se referem, respectivamente, aos métodos de pesquisa:

Alternativas
Comentários
  • Busca Binária

    Utiliza o método do “dividir para conquistar”: busca o elemento do meio da coleção, dividindo-a em duas sub-coleções

    • Compara-se o valor procurado com o elemento no centro da coleção:

    – Se for igual, encontrou;

    – Se for menor, repete a busca na sub-coleção à esquerda do centro;

    – Se for maior, repete a busca na sub-coleção à direita do centro;

    • Não funciona sobre coleções não-ordenadas!

    • Ordem de Complexidade: O(log2 n)

    • No pior caso são realizadas “log2 n” comparações

    Busca Sequencial

    •Caminha de um por um procurando o valor

    • Mais lenta quanto maior for a coleção

    • Pode ser realizada também em estruturas não ordenadas

    • Simples

    • Ordem de Complexidade: O(n)

    • No pior caso, são realizadas “n” comparações

  • Força Guerreiro!!!!!!


ID
3209908
Banca
FGV
Órgão
SEE-PE
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um método de busca bastante utilizado, conhecido como hash, baseia-se na utilização que mapeia chaves em endereços de memória, de modo que os dados associados a cada chave possam ser rapidamente localizados e lidos. Quando há conflitos de localização, algum algoritmo de separação é adotado.

Considere uma tabela hash armazenada em um arquivo no disco rígido. Supondo-se que a mesma possua uma função de hash razoavelmente protegida de conflitos, o número médio de acessos ao disco, necessários para localizar uma chave em um universo de N chaves, é mais próximo de

Alternativas

ID
3265117
Banca
FCM
Órgão
Prefeitura de Caranaíba - MG
Ano
2019
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A técnica de hashing que, no pior caso, realiza O(1) acessos à memória para executar uma busca é denominada hashing

Alternativas
Comentários
  • Busca por Hash, é uma busca do "HASH Perfeito" digamos.

  • GABARITO LETRA B

    Em um algoritmo de hash, para cada entrada, haverá um valor de 'hash' correspondente, contudo entradas diferentes podem causar o mesmo valor de 'hash', é o que chamamos de colisão, quando um algoritmo de 'hashing' causa colisões, chamamos de 'hash imperfeito', quando não, de 'hash perfeito'.


ID
3310825
Banca
FUNDEP (Gestão de Concursos)
Órgão
INB
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Qual o algoritmo de busca que se baseia no princípio de dividir os dados na posição central, testando o elemento a ser encontrado com o elemento que está nessa posição (central)? Considere que, caso o elemento sendo buscado não seja o elemento central, então metade do conjunto de dados já pode ser descartado.

Alternativas
Comentários
  • Busca Binária

    Utiliza o método do “dividir para conquistar”: busca o elemento do meio da coleção, dividindo-a em duas sub-coleções

    • Compara-se o valor procurado com o elemento no centro da coleção:

    – Se for igual, encontrou;

    – Se for menor, repete a busca na sub-coleção à esquerda do centro;

    – Se for maior, repete a busca na sub-coleção à direita do centro;

    • Não funciona sobre coleções não-ordenadas!

    • Ordem de Complexidade: O(log2 n)

    • No pior caso são realizadas “log2 n” comparações

    Busca Sequencial

    •Caminha de um por um procurando o valor

    • Mais lenta quanto maior for a coleção

    • Pode ser realizada também em estruturas não ordenadas

    • Simples

    • Ordem de Complexidade: O(n)

    • No pior caso, são realizadas “n” comparações

  • Força Guerreiro!!!!!!


ID
3379135
Banca
INSTITUTO AOCP
Órgão
UFOB
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Sobre as Estruturas de Dados, seus conceitos e usos, julgue, como VERDADEIRO ou FALSO, os itens a seguir.

A busca por A* é realizada utilizando o custo do caminho do nó inicial até o nó objetivo e o valor da heurística do nó inicial até o nó objetivo.

Alternativas
Comentários
  • GABARITO CERTO

    Nessa questão é cobrado conhecimentos de estimativa de custo de algoritmo e árvores: para as árvores de qualquer tipo, o custo da busca é o custo de acessar cada nó até o nó que se deseja, mas o custo da organização da árvore(heurística em termos simplificados), em outras palavras, se a árvore for binária, é o custo de acessar cada nó somado ao custo de decidir que ramo da árvore seguir.

  • Kenad A* é para busca em grafos (não sei se pode ou se vale a pena ser usado em árvore, mas acredito que não). A heurística nesse caso é uma estimativa conhecida que é utilizada para realizar uma decisão. Ex se a o grafo representar 5 cidades com rodovias que as ligam, uma heurística poderia ser a distância em linha reta entre as cidades.
  • Força Guerreiro!!!!!!


ID
3392950
Banca
INSTITUTO AOCP
Órgão
UFOB
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um algoritmo de computador é composto por várias etapas que, em conjunto, executam uma determinada tarefa. Sobre os algoritmos de computadores, julgue o item a seguir.


Entre alguns exemplos, estão os algoritmos destinados à busca e à ordenação de dados e também os que percorrem grafos para o cumprimento de tarefas.

Alternativas
Comentários
  • Força Guerreiro!!!!!!

  • Até hoje espero o final da questão.......


ID
3476032
Banca
INSTITUTO AOCP
Órgão
IBGE
Ano
2019
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Formalmente, um algoritmo de busca é aquele que aceita um argumento e tenta encontrar o registro cuja chave seja igual ao argumento. Assim, analisando o seguinte passo a passo de um algoritmo de busca, é correto afirmar que se trata de um algoritmo


1. Defina que min= 1 e max = n.

2. Encontre a média de max e min, arredondando para baixo para que seja um inteiro.

3. Se você tiver adivinhado o número certo. Pare – Fim algoritmo!

4. Se o palpite foi muito baixo, defina o min como 1 a mais do que o palpite.

5. Se o palpite foi muito alto, defina o max como 1 a menos do que o palpite.

6. Volte ao passo dois.

Alternativas
Comentários
  • Força Guerreiro!!!!!!


ID
3550423
Banca
CESPE / CEBRASPE
Órgão
MPU
Ano
2010
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

No que se refere à lógica de programação, julgue o item a seguir.


A pesquisa sequencial de uma tabela, ou seja, pela comparação do argumento da pesquisa com a chave de cada entrada, terá o desempenho reduzido se a tabela for ordenada a partir do valor da chave. 

Alternativas
Comentários
  • A pesquisa sequencial de uma tabela, ou seja, pela comparação do argumento da pesquisa com a chave de cada entrada, terá o desempenho aumentado se a tabela for ordenada a partir do valor da chave.


ID
3685966
Banca
NC-UFPR
Órgão
ITAIPU BINACIONAL
Ano
2018
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em sistemas de Recuperação de Informação, os termos de indexação podem ser extraídos diretamente do texto dos documentos, fornecendo uma visão lógica dos documentos. Assinale a alternativa que apresenta corretamente uma das operações realizadas para obter as palavras-chaves. 

Alternativas
Comentários
  • sangue de jesus tem poder!

  • misericórdia

  • SENHOR AMADO

  • no começo da questão eu não entendi nada e quando cheguei ao final, parecia que estava no começo kkkkkk

  • Parece mais uma questão de informática (Banco de dados, Python...) do que de português kkkk

  • Há algo errado que não está certo!!!

  • QUE LOUCURA.

  • Só ladeira abaixo!!

  • eu fui por eliminação, ja que as outas não faziam sentido algum me sobrou a letra E.

  • Eu sabia essa com laranjas!!!

  • Já notifiquei o Qconcursos várias vezes e nunca resolvem, a classificação está errada.

    Questão de biblioteconomia ou gestão da informação, a própria questão está na prova para o cargo de gestão da informação, o simples fato de usar algoritmos para auxiliar no stemming não significa que o assunto é lógica de programação, se fosse assim tudo seria assunto de lógica.

  • Força Guerreiro!!!!!!


ID
5263951
Banca
FGV
Órgão
IMBEL
Ano
2021
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere uma lista ordenada, contendo 20 chaves únicas, na qual seja realizada uma busca binária.
Assinale o número máximo de acessos necessários para encontrar uma determinada chave.

Alternativas
Comentários
  • Basicamente a busca binária é realizada através da divisão pela metade. Sabendo disso:

    1ª Busca: 20 elementos

    2ª Busca: 10 elementos

    3ª Busca: 5 elementos

    4ª Busca: 2 elementos

    5ª Busca: 1 elemento

    Então na pior das hipóteses, teremos que percorrer toda a lista para encontrar o elemento desejado, gastando 5 acessos.

    GABARITO ALTERNATIVA B

  • Neste vídeo o Túlio Faria mostra uma implementação em JS

    https://www.youtube.com/watch?v=l6pxuyV3mKQ

  • Boa Sorte

  • Excelente material para compreensão deste assunto.

    https://dev.to/vapordev/complexidade-logaritmica-o-log-n-3n86

  • Para encontrar 1 elemento: 5 acessos, apenas no quinto conseguiria. Boa questão!

  • GABARITO B

    Outra forma de resolver a questão é aplicando a complexidade das buscas binárias, que é O(log2 n):

    n = 20 (quantidade de elementos)

    log2 (20) = 4,32 -> Arredonda pra cima -> = 5

    Logo, serão necessários, no máximo, 5 acessos para encontrar uma chave.


ID
5377495
Banca
INSTITUTO AOCP
Órgão
ITEP - RN
Ano
2021
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Suponha uma estrutura de dados do tipo vetor, a qual possui algumas centenas de elementos ordenados. Buscas por valores dos elementos desse vetor são constantes e, portanto, é necessário utilizar um método de busca eficiente. Das seguintes opções, qual seria o método de busca ou o algoritmo mais adequado?

Alternativas
Comentários
  • Veja primeiro o comando da questão (destacarei dois trechos): "...Buscas por valores..." e "...qual seria o método de busca ou o algoritmo mais adequado?"

    O que é o algoritmo de busca linear (ou sequencial)? R:  compara o elemento procurado com cada elemento do vetor até encontrá-lo partindo, geralmente, da primeira posição do vetor. Ele não é o melhor, por quê? Imagine que o elemento esteja no final da fila. Assim, demorará muito tempo até descobri-lo. Eliminamos as letras A e E;

    O que é algoritmo de busca binária? R: é usado para encontrar um item em uma lista ordenada de itens (array, por exemplo). Ela funciona dividindo repetidamente pela metade a porção da lista que deve conter o item, até reduzir as localizações possíveis a apenas uma. <- GABARITO B;

    "Quick Sort" e "Bubble Sort" são algoritmos para ordenação. Eliminados as assertivas C e D.

    REFERÊNCIAS

    • https://pt.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search

    • https://www.blogcyberini.com/2017/09/busca-linear.html#:~:text=A%20busca%20linear%20%C3%A9%20o,a%20lista%20ligada%2

    Fencadeada).&text=A%20ideia%20b%C3%A1sica%20do%20algoritmo,da%20primeira%20posi%C3%A7%C3%A3o%20do%20vetor.

  • Falou em "elementos ordenados" -> Busca Binária

  • Oi!

    Gabarito: B

    Bons estudos!

    -Não se faz concurso só PARA passar, se faz ATÉ passar.

  • Boa Sorte

  • Acredito que a dúvida de muitos, assim como a minha ficou entre a Busca binária e Quick Sort, pois ambos algoritmos são bem eficientes. Mas, o Quick Sort é mais utilizado para realizar ordenações.

    Algoritmo de Busca linear

    O algoritmo de Busca Linear é um algoritmo simples, que faz a pesquisa por um elemento em um vetor (array ou lista) desordenado, de modo sequencial. O primeiro elemento tem o índice 0 (zero).

    Algoritmo de busca binária

    A busca binária é um eficiente algoritmo para encontrar um item em uma lista ordenada de itens. Ela funciona dividindo repetidamente pela metade a porção da lista que deve conter o item, até reduzir as localizações possíveis a apenas uma.

    Algoritmo de Bubble sort

    O bubble sort, ou ordenação por flutuação, é um algoritmo de ordenação dos mais simples. A ideia é percorrer o vector diversas vezes, e a cada passagem fazer flutuar para o topo o maior elemento da sequência.

    Algoritmo de Quick Sort

    Quick Sort é um algoritmo eficiente de ordenação por divisão e conquista. O funcionamento do Quick Sort baseia-se em uma rotina fundamental cujo nome é particionamento. Particionar significa escolher um número qualquer presente no array, chamado de pivot, e colocá-lo em uma posição tal que todos os elementos à esquerda são menores ou iguais e todos os elementos à direita são maiores.

    Algoritmo de Busca sequencial

    A busca sequencial é o algoritmo mais simples de busca: Percorra a lista comparando a chave com os valores dos elementos em cada uma das posições. Se a chave for igual a algum dos elementos, retorne a posição correspondente na lista. Se a lista toda foi percorrida e a chave não for encontrada, retorne o valor −1.


ID
5474713
Banca
CESGRANRIO
Órgão
Banco do Brasil
Ano
2021
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em uma agência bancária, as filas de atendimento são ordenadas da esquerda para a direita, e o gerente dessa agência percebeu a presença equivocada de um idoso, com a senha 52, na fila de atendimento não preferencial. Visando a sanar o equívoco, o gerente resolveu que, na primeira oportunidade, faria uma busca no sistema para saber se a senha 52 ainda estava ativa, indicando a presença do idoso na fila de atendimento não preferencial. Em caso de resposta positiva, procuraria o cliente para trocar sua senha por outra de atendimento preferencial; se não, apenas registraria o fato para posterior discussão no grupo de qualidade de atendimento.

Considerando o uso de um algoritmo de busca sequencial otimizado, partindo da esquerda para a direita, e as sequências hipotéticas das senhas da fila de atendimento não preferencial e suas regras de ordenação, segundo as quais quem está à esquerda é atendido antes de quem está à direita, o menor número de comparações para o gerente conhecer o resultado de sua busca ocorre em 

Alternativas
Comentários
  • A ideia é percorrer as lista da esquerda para a direita até encontrar o 52 ou chegar ao fim. Nos casos das sequências ordenadas, eu posso parar antes caso o número avaliado for maior que "52"

     

    a) 23 -> 45 -> 81. O "81" é maior que "52", então descobri que não existe em 3 rodadas 

    b) 13 -> 25 -> 37 -> 44 -> 52. 5 rodadas

    c) 17 -> 28 -> 32 -> 49 -> 67 . 5 rodadas

    d) 27 -> 95 -> 148 -> 117 -> 33 -> 59 -> 52. 7 rodadas

    e) 32 -> 48 -> 12 -> 55 -> 93 -> 27 -> 66. 7 rodadas