Нахождение k самых маленьких / самых больших элементов в массиве с акцентом на память - PullRequest
2 голосов
/ 06 марта 2019

У меня есть массив unsigned int с n элементами (n не более 20-25 элементов).Возможны дубликаты.

Я знаю, что самые маленькие значения k имеют тип A, а другие (большие) n-k значения имеют тип B.Чтобы различать A и B, мне нужно найти индексы наименьших значений k (или наибольших значений n-k, в зависимости от того, что проще / быстрее).Исходный массив не должен быть изменен, так как индекс элемента содержит информацию.

Существует множество решений этой проблемы в Интернете (например, здесь ).Однако большинство из них пытаются оптимизировать время обработки и игнорировать использование памяти.

Поскольку я реализую код на C ++ на микроконтроллере (на основе Arduino), я должен сосредоточиться на низком использовании памяти и, если необходимо,займет немного больше времени обработки.Поэтому я чувствую себя небезопасно, используя указатели и рекурсию (возможно, я бы этого не сделал, если бы знал больше об этом, но на самом деле не знаю).

Можете ли вы порекомендовать, какой алгоритм лучше всего подойдет для этой задачи (реализацияможно только приветствовать)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...