скажите пожалуйста, в ts есть полиморфизм? Если это так то очень прекрасно
Также esm нельзя скомпоновать в один файл, в отличие от CommonJS.Скажите это Ричу Харрису
Хочу асинхронно писать в файлы. Как это можно сделать?если по простому, то вместо std::fs использовать аналоги из tokio::fs
class Program
{
static void Main()
{
int[] array = { 4, 4, 4, 4, 1, 1, 1, 6, 6, 3, 3, 8, 7, 5, 2 };
int[] result = SortByCount(array);
Console.WriteLine(string.Join(",", result));
}
static int[] SortByCount(int[] array)
{
var dict = new Dictionary<int, uint>();
foreach (var value in array)
{
uint count = dict.GetValueOrDefault<int, uint>(value, 0);
dict.Remove(value);
dict.Add(value, count + 1);
}
var result = new int[array.Length];
uint i = 0;
foreach (var kv in dict.OrderByDescending(kv => kv.Value))
{
uint limit = i + kv.Value;
for (; i < limit; i++)
{
result[i] = kv.Key;
}
}
return result;
}
}
Если я правильно понял, то counting sort - этопросто ещё один алгоритм сортировки, просто вместо перекладывания чисел используется массив с количеством копий.
Автор же хочет отсортировать числа так, чтобы на первом месте были числа с наибольшим количеством копий в массиве, а в конце - с наименьшимИ это вполне можно сделать на базе этого алгоритма, только в оригинальном алгоритме внутренняя сортировка происходит по множеству уникальных значений, а тут надо переделать его так, чтоб сортировались их количественные показатели.
глупое правило, имхо, и даже вредное, поскольку можно случайно изменить тип на более общий