在内存中寻找数组中的k个最小/最大元素

时间:2019-03-06 09:22:59

标签: c++ arrays sorting memory arduino

我有一个带有n元素的无符号int数组(n最多约为20-25个元素)。可以重复。

我知道最小的k值为A类型,其他(较大的)n-k值为B类型。为了在AB之间进行区分,我需要找到k最小值的索引(或n-k最大值,取决于更容易/更快的值) 。原始数组不得更改,因为元素的索引包含信息。

网络上有多种解决此问题的方法(例如here)。但是,大多数方法都试图优化处理时间并忽略内存使用。

当我在(基于Arduino的)微控制器上用C ++实现代码时,我必须专注于低内存使用,并在必要时花费稍长的处理时间。因此,我对使用指针和递归感到不安全(也许,如果我对它有所了解的话可能不会,但是实际上我不知道。)

您能推荐哪种算法最适合该任务(欢迎实现但不是必需的实现)?

0 个答案:

没有答案