Ordenamiento por frecuencia con conservación del orden
Swift
Hard
sorting
Tarea «Ordenamiento por frecuencia con conservación del orden»
Dado un arreglo de números enteros. Ordénelo en orden descendente por la frecuencia de aparición de los elementos. Si dos elementos tienen la misma frecuencia, entonces deben colocarse en el orden de su primera aparición en el arreglo original. Implemente un algoritmo con complejidad temporal O(n log n) y no utilice funciones de ordenamiento integradas con comparadores personalizados.
Formato de entrada
La primera línea contiene un número entero n (1 ≤ n ≤ 10^5) — la cantidad de elementos. La segunda línea contiene n números enteros separados por espacios.
Formato de salida
Imprima n números enteros separados por espacios — el arreglo ordenado.
Ejemplos
Ejemplo 1
ENTRADA
4
1 2 2 3
SALIDA
2 2 1 3
Ejemplo 2
ENTRADA
6
1 2 3 4 5 6
SALIDA
1 2 3 4 5 6
Ejemplo 3
ENTRADA
1
7
SALIDA
7
main.swift