/* Implementar o algoritmo do Quicksort */ /* Definir: - complexidade; - melhor e pior caso; - se é in-place; - se é estável. */ /* Versão do Cormen */ QUICKSORT(A, p, r) if p < r then q = PARTITION(A, p, r) QUICKSORT(A, p, q - 1) QUICKSORT(A, q+1, r) PARTITION(A, p, r) x = A[r] i = p - 1 for j = p to r - 1 do if A[j] <= x then i = i + 1 trocar A[i] com A[j] trocar A[i+] com A[r] return i + 1 Observação: para ordenar um arranjo A inteiro, a chamada inicial é QUICKSORT(A, 1, comprimento[A])