Ordenamiento en R: Order (Parte I)

R, un lenguaje de programación utilizado para Estadística y Análisis de Datos, tiene la función order, que devuelve una lista con los índices necesarios para ordenar el vector original(∗).

Por ejemplo:

my_list = [1, 3, 3, 9, 8]
# Ordered would be: [0, 1, 2, 4, 3]

En palabras simples, order te indica qué elementos debes observar en tu vector original para ordenarlo. La lista my_list[0] + my_list[1] + my_list[2] + my_list[4] + my_list[3] equivale a sorted(my_list).

Si dos o más elementos tienen el mismo orden, se conserva su orden original. Aquí, [0, 1, 2, 4, 3] y [0, 2, 1, 4, 3] ordenarían el vector, pero solo el primero conserva el orden original de los dos 3.

Implementa la función order() para que funcione de la misma manera que en R.

Ejemplos

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]

Notas

  • Espera únicamente números y caracteres alfabéticos en minúsculas.
  • Encuentra la Parte II: Rank aquí.
  • Los vectores en R son similares a una lista. Aunque los vectores en R tienen índices desde 1, tu función debe usar índices desde 0. Se ignorarán otras diferencias entre vectores y listas para este desafío.
  • Si implementas tu propio algoritmo, debe ser estable, lo que significa que el orden de los elementos idénticos no debe cambiarse.