Questões de Concurso
Sobre complexidade de algoritmos em algoritmos e estrutura de dados
Foram encontradas 197 questões
( ) A notação Big O (O(g(n))) define um limite superior assintótico, indicando que o algoritmo cresce no máximo como g(n). ( ) A notação little o (o(g(n))) define um limite superior estrito, indicando que a taxa de crescimento é estritamente menor que g(n). ( ) A notação Ω(g(n)) define um limite intermediário assintótico, sendo comumente empregada para expressar o pior caso de execução de um algoritmo. ( ) A notação Θ(g(n)) define um limite inferior assintótico, garantindo que o algoritmo cresce pelo menos como g(n).
Para a atividade, os alunos receberam uma lista de descrições resumidas de diferentes algoritmos e devem identificar qual delas corresponde corretamente às características de um algoritmo clássico de menor caminho.
Com base na atividade proposta, os alunos devem assinalar qual das seguintes alternativas?
Sobre o método de ordenação por inserção, assinale a alternativa INCORRETA:
(__)O algoritmo de busca binária exige que o conjunto de dados esteja previamente ordenado para funcionar corretamente em tempo logarítmico.
(__)O QuickSort apresenta sua pior performance, com complexidade quadrática, quando o pivô escolhido é repetidamente o menor ou o maior elemento da lista.
(__)O algoritmo Bubble Sort é classificado como estável, o que significa que ele preserva a ordem relativa de elementos com chaves de ordenação idênticas.
(__)A busca sequencial é tecnicamente impossível de ser realizada em listas que contenham elementos do tipo ponto flutuante de precisão dupla.
Após análise, assinale a alternativa que apresenta a sequência correta dos itens acima, de cima para baixo:
O algoritmo e a complexidade de tempo mais adequados são
Para grandes volumes de dados, um algoritmo com complexidade de tempo O(n) (linear) é considerado menos eficiente que um algoritmo com complexidade de tempo O(n log n), uma vez que o crescimento linear é mais acentuado que o crescimento logarítmico.
O nome do problema encontrado por Raimundo é
Considere o seguinte código escrito em Python 3:

A complexidade de tempo desse algoritmo em termos da notação Big-O é
I. Algoritmos recursivos são aqueles que se definem em termos de si mesmos, exigindo uma condição base para evitar chamadas infinitas.
II. A complexidade de tempo de um algoritmo refere-se exclusivamente ao número de passos necessários para executar o código, desconsiderando a entrada do problema.
III. Um algoritmo pode ser implementado em diferentes linguagens de programação, desde que sua lógica seja preservada.
Está correto o que se afirma em:
sort = (array) => { if (array.length <= 1) { return array; } const pivot = array[array.length - 1]; const left = []; const right = []; for (let i = 0; i < array.length - 1; i++) { if (array[i] < pivot) { left.push(array[i]); } else {
right.push(array[i]); } } return [...sort(left), pivot, ...sort(right)];
}
Considerando n como o tamanho do vetor, assinale a alternativa CORRETA que corresponde à complexidade média de tempo do algoritmo na notação Big-O:
Um pesquisador está usando um algoritmo genético para encontrar o melhor conjunto de features possíveis para um problema. No entanto, durante a execução do algoritmo o pesquisador percebe que as soluções geradas sempre divergem para a mesma solução subótima.
Tendo em vista o cenário apresentado, assinale a alternativa que apresenta a ação que irá melhorar a exploração do espaço de respostas a fim de evitar a rápida convergência.