Seja um array de inteiros de 32 bits com 10.000 elementos, g...

Próximas questões
Com base no mesmo assunto
Q2383105 Algoritmos e Estrutura de Dados
Seja um array de inteiros de 32 bits com 10.000 elementos, gerados e posicionados aleatoriamente nesse array.
Nessas condições, qual algoritmo irá ordenar esse array com um consumo de tempo, em seu caso médio, proporcional ao consumo de tempo do pior caso do Quick sort?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a C - Insertion sort.

Vamos entender o raciocínio por trás da questão e por que essa alternativa é a correta.

A questão aborda a ordenação de um array de inteiros de 32 bits com 10.000 elementos, gerados e posicionados de forma aleatória. Para resolver essa questão, é necessário conhecer o comportamento dos algoritmos de ordenação em termos de complexidade de tempo.

O algoritmo de Quick sort é conhecido por ter um consumo de tempo no caso médio de O(n log n). No entanto, no seu pior caso, o Quick sort pode chegar a O(n²). A questão pede um algoritmo cujo consumo de tempo no caso médio seja proporcional ao pior caso do Quick sort, ou seja, O(n²).

Vamos analisar cada alternativa:

A - Bucket sort: Este algoritmo, no caso médio, tem uma complexidade de O(n + k), onde k é o número de baldes. Portanto, ele não atende ao critério de ter um caso médio proporcional ao pior caso do Quick sort.

B - Heap sort: Este é um algoritmo de ordenação com complexidade de tempo garantida de O(n log n) tanto no melhor, médio quanto no pior caso. Não é proporcional ao pior caso do Quick sort.

C - Insertion sort: Este algoritmo tem um consumo de tempo no caso médio de O(n²), que corresponde exatamente ao pior caso do Quick sort. Portanto, esta é a alternativa correta.

D - Merge sort: Este algoritmo possui complexidade de tempo de O(n log n) no melhor, médio e pior caso. Portanto, ele também não é proporcional ao pior caso do Quick sort.

E - Tree sort: Este algoritmo depende da estrutura de uma árvore binária de busca. No caso médio, sua complexidade é O(n log n), mas no pior caso, pode ser O(n²). No entanto, a complexidade média não é proporcional ao pior caso do Quick sort.

Por fim, a alternativa C - Insertion sort é a correta, pois é o único algoritmo listado que possui um consumo de tempo no caso médio proporcional ao pior caso do Quick sort, ou seja, O(n²).

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

| Algoritmo   | Melhor Caso   | Caso Médio   | Pior Caso    |

|---------------|-----------------|-----------------|-----------------|

| Bucket Sort  | O(n + k)    | O(n + k)    | O(n^2)     |

| Heap Sort   | O(n log n)   | O(n log n)   | O(n log n)   |

| Insertion Sort| O(n)      | O(n^2)     | O(n^2)     |

| Merge Sort  | O(n log n)   | O(n log n)   | O(n log n)   |

| Tree Sort   | O(n log n)   | O(n log n)   | O(n^2)     |

| Bubble Sort  | O(n)      | O(n^2)     | O(n^2)     |

| Quick Sort  | O(n log n)   | O(n log n)   | O(n^2)     |

*Pra decorar*

Melhor Médio Pior

Bubble On On2 On2

Insertion On On2 On2

Selection On2 On2 On2

Merge On(logn On(logn On(logn

Quick On(logn On(logn On2

Shell On(logn On(logn On2

Heap On(logn On(logn On(logn

De forma resumida e objetiva:

QuickSort tem, no pior caso, a complexidade de O(n²).

InsertionSort tem, no pior caso e no caso médio a complexidade de O(n²).

Mas o pior caso do quick é o(n2) e o caso médio do bubbles sort é o(n2) não estaria correto bubbles sort também?

Essa questão prova que não passa em concurso quem sabe mais, mas sim quem decorou mais.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo