

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
Sobre análise de algoritmos, considere o algoritmo de busca binária aplicado sobre um arranjo unidimensional de n elementos, previamente ordenado. No pior caso, a complexidade de tempo (ordem de crescimento) deste algoritmo é adequadamente representada por:
O(n)
O(n²)
O(log n)
O(n log n)
O(1)
Durante a implementação e manutenção de sistemas de apoio gerencial, um profissional em tecnologia da informação precisa lidar com grandes volumes de dados armazenados em memória para realizar consultas frequentes e garantir bom desempenho das aplicações. Considere que um sistema em Python utiliza uma lista de registros já ordenada em ordem crescente por um identificador numérico único. Diante desse cenário, o profissional de TI deve selecionar um algoritmo de pesquisa adequado, considerando desempenho e boas práticas de engenharia de software. Diante disso, assinale a alternativa que apresenta a descrição CORRETA para a escolha do algoritmo de pesquisa, nesse contexto.
Utilizar um algoritmo de ordenação rápida (Quick Sort) a cada consulta, pois sua complexidade média O(log n) otimiza o processo de pesquisa.
Utilizar a pesquisa sequencial, pois seu tempo de execução é sempre O(log n) em listas ordenadas, garantindo melhor desempenho em qualquer cenário de busca.
Utilizar a pesquisa binária, pois explora o fato de que a lista está ordenada, reduzindo o espaço de busca a cada iteração e apresentando complexidade O(log n).
Utilizar um algoritmo de ordenação por inserção (Insertion Sort) antes da busca, pois ele garante menor custo computacional para pesquisas repetidas e sequenciais.
Utilizar a pesquisa linear, pois em Python listas são estruturas dinâmicas que não permitem a aplicação de algoritmos de busca binária utilizando o conceito de complexidade O(log n).
Analise o vetor ordenado:
[3, 8, 12, 15, 19, 27, 31].
Aplicando busca binária para localizar o valor 19, quantas comparações serão realizadas até encontrar o elemento, considerando a estratégia padrão de busca binária que compara inicialmente com o elemento central? Considere a implementação clássica da busca binária que retorna o índice do elemento ou -1 se não encontrado. As comparações consideram apenas as verificações do elemento central.
1
2
3
4
7
Um desenvolvedor precisa implementar um algoritmo de busca em uma estrutura de dados que armazena 1 milhão de registros ordenados. O requisito é encontrar um registro específico com o menor número de comparações possível.
O algoritmo e a complexidade de tempo mais adequados são
busca linear com complexidade O(n)
busca por saltos (Jump Search) com complexidade O(√n)
busca por interpolação com complexidade O(1)
busca em largura (BFS) com complexidade O(log n)
busca binária com complexidade O(log n)
Para que a Busca Binária seja aplicada com sucesso em um vetor, qual pré-requisito é obrigatório e qual é a sua complexidade de tempo no pior caso?
O vetor deve estar desordenado; O(n).
O vetor deve estar ordenado; O(log n).
O vetor deve conter apenas números inteiros; O(log n).
O vetor deve ser dinâmico; O(n2).
O vetor deve possuir tamanho par; O(n).
Considere o seguinte algoritmo de busca binária aplicado sobre um vetor ordenado de inteiros com tamanho 𝑛:
while (inicio <= fim) {
meio = inicio + (fim - inicio) / 2
if (v[meio] == x)
return meio
else if (v[meio] < x)
inicio = meio + 1
else
fim = meio - 1
}
Considerando o pior caso, qual é a complexidade assintótica desse algoritmo em função de 𝑛?
𝑂(𝑛)
𝑂(log 𝑛)
𝑂(𝑛log 𝑛)
𝑂(√𝑛)
𝑂(1)
Um programador precisa buscar um registro específico em um arquivo de dados grande. O arquivo está desordenado e não possui qualquer estrutura de índice.
Assinale a afirmativa que compara corretamente a eficiência dos algoritmos de Busca Sequencial e Busca Binária neste cenário.
A Busca Binária é sempre superior à Sequencial, pois sua complexidade de tempo é 𝑂(1).
A Busca Sequencial tem uma complexidade de 𝑂(𝑙𝑜𝑔𝑁), pois ela aproveita a desordem do arquivo para realizar menos comparações.
A Busca Binária tem complexidade 𝑂(𝑙𝑜𝑔𝑁), mas não pode ser aplicada neste cenário, pois exige que o arquivo esteja previamente ordenado pela chave de busca.
A Busca Sequencial tem complexidade 𝑂(𝑁) e é a única aplicável a arquivos desordenados, enquanto a Binária tem complexidade 𝑂(𝑁2 ).
A Busca Binária é aplicável, mas a Busca Sequencial é mais rápida, pois evita a sobrecarga de cálculo do ponto médio.
Considere o seguinte código escrito em Python 3:
def busca_binaria(lista, elemento):
inicio = 0
fim = len(lista) - 1
while inicio <= fim:
meio = (inicio + fim) // 2
if lista[meio] == elemento:
return meio
elif lista[meio] < elemento:
inicio = meio + 1
else:
fim = meio - 1
return -1
A complexidade de tempo desse algoritmo em termos da notação Big-O é
O(1).
O(n).
O(n²).
O(log n).
O(n!).

O algoritmo de busca binária apresentado anteriormente possui
complexidade de tempo O(n), em que n é o número de elementos no array.
complexidade de tempo O(log n), em que n representa o número de elementos no array.
complexidade espacial O(n), já que o algoritmo não usa estruturas de dados adicionais que crescem com o tamanho da entrada.
complexidade espacial O(log n), já que o algoritmo não usa estruturas de dados adicionais que crescem com o tamanho da entrada.
complexidade de tempo O(1), já que o algoritmo não usa estruturas de dados adicionais que crescem com o tamanho da entrada.
Ao se comparar os algoritmos de busca linear e de busca binária em um array ordenado com n elementos, verifica-se que a busca binária tem complexidade temporal O(log n ), enquanto a busca linear tem complexidade temporal O(n).
Certo
Errado
A complexidade de busca em uma árvore binária balanceada é
O(1).
O(n).
O(n log n).
O(log n).
O(log n2 ).
Estruturas de dados são fundamentais para armazenar e organizar informações de forma eficiente em um sistema computacional. A escolha dos métodos de acesso, busca, inserção e ordenação pode impactar significativamente o desempenho do programa.
Com base nisso, assinale a opção que indica o método de busca que é mais eficiente quando aplicado em uma lista ordenada contendo milhares de elementos.
Busca Linear.
Busca Binária.
Busca Hash.
Busca Sequencial.
Busca por Interpolação.
Em um algoritmo de busca binária, é necessário que o vetor esteja previamente ordenado para que a busca seja correta e eficiente.
Certo
Errado
A complexidade do algoritmo de busca binária, em sua forma iterativa, é O(log n), o que representa ganho significativo de desempenho sobre a busca linear em listas ordenadas.
Certo
Errado
Pesquisa binária é um algoritmo empregado na computação para encontrar um item em uma lista ordenada de elementos. Trata-se da complexidade do tempo desse algoritmo no pior caso:
O(1)
O(n)
O(log n)
O(n log n)
Leia o caso a seguir.
Considere uma função de busca recursiva em uma estrutura de dados do tipo árvore binária de busca. A eficiência dessa função é crucial para a performance de consultas em um banco de dados que utiliza essa estrutura para indexação.
Elaborado pelo(a) autor(a).
Dada a importância da escalabilidade e do consumo eficiente de recursos, e considerando uma árvore binária de busca balanceada, a opção que oferece a melhor implementação para a função de busca é aquela que
realiza a busca em profundidade, verificando cada nó e seus descendentes, sem qualquer mecanismo de corte.
verifica apenas os nós folha, pois estes contêm todas as chaves necessárias para a busca.
divide a árvore em sub árvores menores e realiza a busca sequencialmente em cada uma delas.
compara a chave de busca com a chave de cada nó visitado, descartando metade da árvore a cada passo.
Em uma Árvore Binária de Busca (BST) balanceada, qual das seguintes operações geralmente exibe uma complexidade de tempo média de O (log n), considerando a estrutura balanceada da árvore?
Inserção de um novo nó e remoção de um nó.
Remoção de um nó e busca por um elemento.
Inserção de um novo nó e busca por um elemento.
inserção de um novo nó, remoção de um nó e busca por um elemento.
Em uma árvore binária de busca (BST), a afirmação que é verdadeira para todos os nós é
todos os nós à esquerda de um nó contêm valores maiores que o valor do nó.
todos os nós à direita de um nó contêm valores menores que o valor do nó.
o nó raiz sempre tem o menor valor na árvore.
todos os nós à esquerda de um nó contêm valores menores ou iguais ao valor do nó, e todos os nós à direita contêm valores maiores ou iguais ao valor do nó.
todos os nós à esquerda de um nó contêm valores menores que o valor do nó, e todos os nós à direita contêm valores maiores que o valor do nó.
O analista Jon está ministrando um treinamento sobre algoritmos de busca e, durante a explicação sobre a busca binária em uma lista ordenada de n elementos, ele discute a eficiência desse algoritmo.
A complexidade de tempo correta que Jon deve apresentar para a busca binária é a de:
O(n);
O(n log n);
O(log n);
O(n^2);
O(1).
Considerando uma tabela Hash com uma boa função de Hash e carga balanceada, qual é a complexidade de tempo médio para a operação de busca?
O(1).
O(n).
O(log n).
O(n log n).