Um analista se baseou em um algoritmo utilizado na ordenação de vetores para especificar o algoritmo “ordenar” descrito abaixo.
algoritmo ordenar (inteiro L, R)
var
inteiro i, j, w, x
início
i !$ \leftarrow !$ L
j !$ \leftarrow !$ R
x !$ \leftarrow !$ a [(L + R) div 2]
repita
enquanto (a[i] < x) faça
i !$ \leftarrow !$ i + 1
fimenquanto
enquanto (x < a[j]) faça
j !$ \leftarrow !$ j - 1
fimenquanto
se (i <= j) então
w !$ \leftarrow !$ a[i]
a[i] !$ \leftarrow !$ a[j]
a[j] !$ \leftarrow !$ w
i !$ \leftarrow !$ i + 1
j !$ \leftarrow !$ j - 1
fimse
até (i > j)
se (L < j) então
ordenar (L, j)
fimse
se (i < R) então
ordenar (i, R)
fimse
fimordenar
A chamada da função “X div Y” retorna a divisão inteira de “X” por “Y”.
Sabendo que o vetor “a” armazena as informações que deverão ser ordenadas e que o algoritmo deve ser chamado através de “ordenar (1, n)”, sendo n o número de itens armazenados no vetor “a”, qual é o nome do algoritmo utilizado pelo analista na especificação do procedimento?