1. Divisão: O array é dividido em grupos de 5 elementos cada.
2. Ordenação: Cada grupo é ordenado individualmente (O(1) pois são apenas 5 elementos).
3. Extração de medianas: A mediana de cada grupo é extraída.
4. Recursão: O algoritmo é aplicado recursivamente no array das medianas para encontrar a "mediana das medianas".
5. Particionamento: O array original é particionado usando a mediana das medianas como pivot.
6. Análise de condições: Os arrays L, E, R são analisados para determinar o próximo passo.
7. Decisão: Baseado na posição k desejada, o algoritmo continua na partição esquerda ou direita.
Complexidade: O(n) no pior caso, garantindo performance linear mesmo em casos adversos.