Considere as afirmativas abaixo sobre estruturas de dados h...
(__)A complexidade de tempo do algoritmo de ordenação Bubble Sort no pior caso é O(n²).
(__)As listas ligadas permitem inserções e remoções eficientes em qualquer posição, mas ocupam mais memória devido ao armazenamento de ponteiros.
(__)A recursividade é uma técnica de programação onde uma função faz chamadas a si mesma, podendo ser substituída por uma estrutura de repetição em qualquer situação.
Assinale a alternativa cuja respectiva ordem de julgamento esteja correta:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Para resolver a questão apresentada, é importante entender os conceitos fundamentais sobre algoritmos de ordenação, listas ligadas e recursão, que são tópicos essenciais para um Analista de Sistemas.
Alternativa Correta: D - V − V − F
1. A complexidade de tempo do algoritmo de ordenação Bubble Sort no pior caso é O(n²).
O Bubble Sort é um algoritmo de ordenação simples que percorre repetidamente a lista, comparando elementos adjacentes e trocando-os se estiverem na ordem errada. No pior caso, quando a lista está em ordem inversa, o algoritmo realiza n-1 comparações para cada elemento, resultando em uma complexidade de tempo de O(n²). Portanto, essa afirmativa é verdadeira. (Fontes: Cormen, Thomas H. et al. "Introduction to Algorithms")
2. As listas ligadas permitem inserções e remoções eficientes em qualquer posição, mas ocupam mais memória devido ao armazenamento de ponteiros.
Listas ligadas são estruturas de dados em que os elementos (ou nós) contêm dados e um ponteiro para o próximo nó. Essa estrutura permite inserções e remoções eficientes em qualquer posição, uma vez que não é necessário deslocar elementos como nos arrays. No entanto, cada nó requer armazenamento adicional para o ponteiro, o que resulta em maior uso de memória. Assim, essa afirmativa é verdadeira.
3. A recursividade é uma técnica de programação onde uma função faz chamadas a si mesma, podendo ser substituída por uma estrutura de repetição em qualquer situação.
A recursividade é uma técnica usada quando um problema pode ser dividido em subproblemas menores do mesmo tipo. Embora muitas situações recursivas possam ser reescritas usando estruturas de repetição como loops, nem sempre isso é prático ou eficiente, especialmente para algoritmos que naturalmente se beneficiam da recursão, como algoritmos de divisão e conquista. Portanto, a afirmativa de que a recursividade pode ser sempre substituída por loops é falsa.
Portanto, a sequência correta das afirmações é: Verdadeiro, Verdadeiro, Falso, o que corresponde à alternativa D.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo