Ordenação em R: Order (Parte I)
R, uma linguagem de programação usada para Estatística e Análise de Dados, tem a função order, que retorna uma lista com os índices necessários para ordenar o vetor original(∗).
Por exemplo:
my_list = [1, 3, 3, 9, 8]
# Ordered would be: [0, 1, 2, 4, 3]Em palavras simples, order informa quais elementos você deve observar no vetor original para ordená-lo. A lista my_list[0] + my_list[1] + my_list[2] + my_list[4] + my_list[3] equivale a sorted(my_list).
Se dois ou mais elementos tiverem a mesma ordem, a ordem original deles será preservada. Aqui, [0, 1, 2, 4, 3] e [0, 2, 1, 4, 3] ordenariam o vetor, mas apenas o primeiro preserva a ordem original dos dois 3s.
Implemente a função order() para que ela funcione da mesma forma que em R.
Exemplos
order([9, 1, 4, 5, 4]) ➞ [1, 2, 4, 3, 0]
order(["z", "c", "f", "b", "c"]) ➞ [3, 1, 4, 2, 0]
order(["order", "my", "words"]) ➞ [1, 0, 2]Observações
- Espere apenas números e caracteres alfabéticos minúsculos.
- Encontre a Parte II: Rank aqui.
- Vetores em R são semelhantes a uma lista. Embora os vetores em R sejam indexados a partir de 1, sua função deve usar índices a partir de 0. Outras diferenças entre vetores e listas serão ignoradas no escopo deste desafio.
- Se você implementar seu próprio algoritmo, ele deverá ser estável, o que significa que a ordem de elementos idênticos não será alterada.