← Questões de Algoritmos e Estrutura de Dados

Algoritmos e Estrutura de Dados · FGV · 2025

Questão comentada de Algoritmos e Estrutura de Dados

A análise da complexidade de algoritmos é essencial para avaliar seu desempenho e eficiência, especialmente em cenários com grandes volumes de dados. Assinale a opção que representa a complexidade O (n log n) mais comummente observada em algoritmos de ordenação eficientes.

Gabarito: C

Quando você olha para complexidade de algoritmos, a ideia é simples: quanto o tempo de execução cresce quando a entrada cresce? Em ordenação, isso costuma separar os algoritmos “amiguinhos do pequeno volume” dos que aguentam melhor grandes conjuntos de dados. Os algoritmos O(n^2), como bolha, seleção e inserção, parecem inocentes, mas ficam lentos rapidamente quando n aumenta. Já a classe O(n log n) é a queridinha dos algoritmos de ordenação eficientes. Ela aparece com frequência em métodos que dividem o problema em partes menores e depois recombinam tudo. É o caso do QuickSort, que em média trabalha nessa ordem de crescimento, por isso é muito lembrado em provas quando a banca fala em eficiência. No QuickSort, o vetor é particionado em torno de um pivô, e cada parte é ordenada recursivamente. Esse padrão de “dividir para conquistar” costuma gerar desempenho muito bom na prática e, em média, complexidade O(n log n). Por isso o gabarito é a alternativa C. Vale lembrar: a complexidade pode variar conforme o caso. O QuickSort tem pior caso O(n^2), mas a questão perguntou a complexidade mais comumente observada em algoritmos de ordenação eficientes, então o foco é o comportamento médio e clássico do algoritmo.

Continue treinando

Questões relacionadas