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.
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]