Considere as afirmativas abaixo sobre estruturas de dados h...

Próximas questões
Com base no mesmo assunto
Q3330092 Algoritmos e Estrutura de Dados
Considere as afirmativas abaixo sobre estruturas de dados homogêneas e heterogêneas, incluindo vetores e matrizes, registros, listas, filas, pilhas e árvores, métodos de busca e ordenação, e recursividade. Sobre o assunto, julgue as seguintes afirmações como verdadeiras (V) ou falsas (F):

(__)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:
Alternativas

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