4) Use o método de árvore de recursão para indicar o custo assintótico do algoritmo Quicksort
para os seguintes casos:
a) O vetor se subdivide em duas partes: 1/3 dos elementos sempre menores ou iguais
ao pivô; 2/3 dos elementos sempre maiores ou iguais ao pivô.
b) O vetor se subdivide em duas partes: 1/9 dos elementos sempre menores ou iguais
ao pivô; 2/10 dos elementos sempre maiores ou iguais ao pivô.
c) O vetor se subdivide em duas partes: 1 elemento sempre menor ou igual ao pivô;
os demais elementos sempre maiores ou iguais ao pivô.
Para calcular o custo assintótico do Quicksort com diferentes divisões de subproblemas, utilizamos o método da árvore de recursão. O custo geral do algoritmo é dado pela fórmula:
T(n)=T(a?n)+T(b?n)+c?nT(n) = T(a \cdot n) + T(b \cdot n) + c \cdot n
Onde:
O objetivo é determinar o custo total T(n)T(n) analisando a profundidade da árvore de recursão e o custo em cada nível.
T(n)=T(n/3)+T(2n/3)+c?nT(n) = T(n/3) + T(2n/3) + c \cdot n
Custo final: O(nlog?n)O(n \log n).
T(n)=T(n/9)+T(2n/10)+c?nT(n) = T(n/9) + T(2n/10) + c \cdot n
Custo final: O(nlog?n)O(n \log n).
T(n)=T(1)+T(n?1)+c?nT(n) = T(1) + T(n-1) + c \cdot n
Custo final: O(n2)O(n^2).
Divisão | Custo Total (T(n)T(n)) |
---|---|
1/31/3 e 2/32/3 | O(nlog?n)O(n \log n) |
1/91/9 e 2/102/10 | O(nlog?n)O(n \log n) |
11 e n?1n-1 | O(n2)O(n^2) |
O algoritmo Quicksort utiliza a estratégia de dividir para conquistar, em que o vetor é dividido em duas partes de acordo com um pivô escolhido, e então cada uma dessas partes é ordenada recursivamente. O custo assintótico do Quicksort depende do pivô escolhido e da divisão do vetor em partes iguais ou desiguais.
a) Neste caso, a divisão do vetor é desigual, com 1/3 dos elementos menores ou iguais ao pivô e 2/3 dos elementos maiores ou iguais ao pivô. O custo assintótico do Quicksort pode ser representado por uma árvore de recursão balanceada, com altura log_3/2(n), em que n é o tamanho do vetor. O custo total é dado pela soma dos custos de cada nível da árvore, que é O(n).
b) Neste caso, a divisão do vetor também é desigual, com 1/9 dos elementos menores ou iguais ao pivô e 2/3 dos elementos maiores ou iguais ao pivô. O custo assintótico do Quicksort pode ser representado por uma árvore de recursão desbalanceada, com altura n/9, em que n é o tamanho do vetor. O custo total é dado pela soma dos custos de cada nível da árvore, que é O(n^2).
c) Neste caso, a divisão do vetor é igual, com apenas um elemento menor ou igual ao pivô e os demais maiores ou iguais ao pivô. O custo assintótico do Quicksort pode ser representado por uma árvore de recursão desbalanceada, com altura n, em que n é o tamanho do vetor. O custo total é dado pela soma dos custos de cada nível da árvore, que é O(n^2).