Сортировка элементов по частоте с помощью STL

Опубликовано: 14 Января, 2023

Дан массив целых чисел, отсортируйте массив по частоте элементов. Если частоты двух элементов одинаковы, выведите их в порядке возрастания. Примеры:

Input : arr[] = {2, 3, 2, 4, 5, 12, 2, 3, 3, 3, 12}
Output : 3 3 3 3 2 2 2 12 12 4 5
Explanation :
No. Freq
2  : 3
3  : 4
4  : 1
5  : 1
12 : 2

Мы обсудили различные подходы в следующих сообщениях: Сортировка элементов по частоте | Установить 1 Сортировать элементы по частоте | Набор 2 Мы можем решить эту задачу, используя карту и пары. Сначала мы создаем карту таким образом, что map[element] = freq. Когда мы закончим построение карты, мы создадим массив пар. Пара, которая хранит элементы и их соответствующую частоту, будет использоваться для целей сортировки. Мы пишем пользовательскую функцию сравнения, которая сначала сравнивает две пары на основе частоты и, если есть связь, на основе значений.

Ниже приведена его реализация на С++:

Временная сложность: O (n Log n)

Эта статья предоставлена Адити Шармой . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью с помощью write.geeksforgeeks.org или отправить ее по адресу review-team@geeksforgeeks.org. Посмотрите, как ваша статья появится на главной странице GeeksforGeeks, и помогите другим гикам.