Сортировка массива по возрастанию числа одинаковых элементов - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Рандомно генерируется массив чисел, нужно отсортировать массив так, чтобы одинаковые элементы стояли рядом и группы одинаковых чисел шли по возрастанию количества элементов в них. К примеру если у нас есть массив -2 5 -2 5 5 3 1 4 1 -2 5, то на выходе должен быть вот такой 3 4 1 1 -2 -2 -2 5 5 5 5. Помогите реализовать.

Решение задачи: «Сортировка массива по возрастанию числа одинаковых элементов»

textual
Листинг программы
  1.         static void Main(string[] args)
  2.         {
  3.  
  4.             var array = new int[] {-2, 5, -2, 5, 5, 3, 1, 4, 1, -2, 5};
  5.             Console.WriteLine(String.Join(" ", array));
  6.  
  7.             var result = new int[] {};
  8.  
  9.             array.GroupBy(x => x)
  10.                 .Select(y => new { Value = y.Key, Count = y.Count() })
  11.                 .OrderBy(z => z.Count)
  12.                 .Select(v =>
  13.                 {
  14.                     result = result.Concat(Enumerable.Repeat<int>(v.Value, v.Count).Select(x => x)).ToArray();
  15.                     return 0; })
  16.                 .ToArray();
  17.             array = result;
  18.             Console.WriteLine(String.Join(" ", array));
  19.             Console.ReadKey();
  20.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы