← Questões de Algoritmos e Estrutura de Dados

Algoritmos e Estrutura de Dados · CONSULPLAN · 2023

Questão comentada de Algoritmos e Estrutura de Dados

Algoritmos de ordenação são responsáveis por ordenar elementos de uma estrutura de dados de forma completa ou parcial. Sobre a complexidade dos algoritmos de ordenação, assinale, a seguir, o algoritmo de ordenação que, no pior caso, tem complexidade igual a O(n log n).

Gabarito: B

Quando a banca pergunta a complexidade de algoritmos de ordenação, ela quer que voce saiba não só "quem ordena", mas também quanto custa ordenar quando o cenário complica. Em geral, os algoritmos mais simples, como Bubble, Insertion e Selection, costumam ficar em O(n²) no pior caso, então não são os favoritos de questões de complexidade. Já os algoritmos mais eficientes usam a estratégia de dividir para conquistar, reduzindo bastante o trabalho total. O ponto central aqui é o pior caso. O algoritmo pedido no enunciado deve manter complexidade O(n log n) mesmo quando os dados estão em uma situação desfavorável. Esse é exatamente o caso do Merge sort, que divide o vetor em partes menores, ordena cada parte e depois faz a fusão. Como a divisão acontece logaritmicamente e cada nível faz trabalho linear, o total fica em O(n log n). O Quick sort costuma ser muito rápido na prática, mas seu pior caso pode cair para O(n²) quando a escolha do pivô é ruim. Ou seja, ele não atende ao que a questão pediu. Já Bubble, Insertion e Selection são os clássicos da dor de cabeça em prova quando a banca quer comparar ordens de crescimento: eles são simples, mas pouco eficientes para grandes volumes. Então, o gabarito B está correto porque o Merge sort tem complexidade O(n log n) no pior caso. Se voce lembrar da lógica "divide e conquista + fusão linear", praticamente mata esse tipo de questão sem sofrimento.

Continue treinando

Questões relacionadas