У меня есть массив unsigned int с n
элементами (n
не более 20-25 элементов).Возможны дубликаты.
Я знаю, что самые маленькие значения k
имеют тип A
, а другие (большие) n-k
значения имеют тип B
.Чтобы различать A
и B
, мне нужно найти индексы наименьших значений k
(или наибольших значений n-k
, в зависимости от того, что проще / быстрее).Исходный массив не должен быть изменен, так как индекс элемента содержит информацию.
Существует множество решений этой проблемы в Интернете (например, здесь ).Однако большинство из них пытаются оптимизировать время обработки и игнорировать использование памяти.
Поскольку я реализую код на C ++ на микроконтроллере (на основе Arduino), я должен сосредоточиться на низком использовании памяти и, если необходимо,займет немного больше времени обработки.Поэтому я чувствую себя небезопасно, используя указатели и рекурсию (возможно, я бы этого не сделал, если бы знал больше об этом, но на самом деле не знаю).
Можете ли вы порекомендовать, какой алгоритм лучше всего подойдет для этой задачи (реализацияможно только приветствовать)?