Assinale a alternativa que apresenta o tempo de execução d...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - Pior caso: O(n2); melhor caso: O(n log n).
Explicação sobre o tema:
O algoritmo quicksort, ou ordenação rápida, é um dos algoritmos de ordenação mais eficientes, especialmente para grandes conjuntos de dados. Ele é baseado no conceito de dividir e conquistar. A chave para entender suas complexidades de tempo de execução é saber como ele particiona os dados.
No melhor caso, o quicksort particiona o array de forma relativamente equilibrada, o que resulta em um tempo de execução de O(n log n). Isso ocorre porque a cada iteração, o conjunto de dados é dividido aproximadamente pela metade, levando a uma profundidade de log n níveis de recursão, e em cada nível, todas as n comparações são realizadas.
No pior caso, o algoritmo particiona o array de uma maneira altamente desequilibrada, por exemplo, se o pivô escolhido for o menor ou maior elemento em cada divisão. Isso resulta em uma complexidade de tempo de O(n2), pois em cada nível de recursão, apenas um elemento é colocado no lado esquerdo ou direito, levando a n níveis de recursão, com n comparações em cada nível.
Justificativa da alternativa correta:
A alternativa E está correta porque apresenta a complexidade correta do quicksort nos cenários de pior e melhor caso:
- Pior caso: O(n2)
- Melhor caso: O(n log n)
Análise das alternativas incorretas:
- A: Incorreta porque indica O(n) como melhor caso, enquanto o melhor caso correto é O(n log n).
- B: Incorreta porque indica O(n log n) como pior caso, o que não é correto; o pior caso é O(n2).
- C: Incorreta porque indica O(n) como pior caso, o que está incorreto, e O(n + m) como melhor caso, o que também não se aplica ao quicksort.
- D: Incorreta porque indica O(n log n) como pior caso e O(n + m) como melhor caso, ambos incorretos para o quicksort.
Espero que essa explicação tenha ajudado a esclarecer as sutilezas do algoritmo quicksort e a compreender por que a alternativa E é a correta. Se tiver mais dúvidas, estarei aqui para ajudar!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Não tenho na mente o funcionamento exato do algoritmo informado pela questão, mas basta sabermos a precedência das classes de complexidade de algoritmos e marcar a assertiva onde tenha a maior complexidade para o pior caso e a menor complexidade para o melhor caso! Alternativa E
A maioria dos algoritmos de ordenação tem o pior caso de complexidade O(n^2)
@Homelander, seguindo essa lógica, seria letra A.
O(n) é menos complexo do que O(n lg n)
O Felipe Jansen foi cirúrgico no raciocínio. Essa estratégia pode ser usada em vários tipos de questões.
E de fato o pior cenário para o QuickSort é O(n²) e o melhor cenário O(n log(n))
Força Guerreiro!!!!!!
GABARITO E
Quick Sort
- Melhor caso: O(n log n)
- Médio caso: O(n log n)
- Pior caso: O(n²)
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo