按频率排序并保持顺序
Swift
Hard
sorting
任务 «按频率排序并保持顺序»
给定一个整数数组。请按照元素出现频率的降序对其进行排序。如果两个元素具有相同的频率,则它们应按照在原数组中首次出现的顺序排列。请实现一个时间复杂度为 O(n log n) 的算法,并且不要使用带有自定义比较器的内置排序函数。
输入格式
第一行包含一个整数 n (1 ≤ n ≤ 10^5) — 元素的数量。第二行包含 n 个由空格分隔的整数。
输出格式
输出n个由空格分隔的整数——排序后的数组。
示例
示例 1
输入
4
1 2 2 3
输出
2 2 1 3
示例 2
输入
6
1 2 3 4 5 6
输出
1 2 3 4 5 6
示例 3
输入
1
7
输出
7
main.swift