我有一个带有n
元素的无符号int数组(n
最多约为20-25个元素)。可以重复。
我知道最小的k
值为A
类型,其他(较大的)n-k
值为B
类型。为了在A
和B
之间进行区分,我需要找到k
最小值的索引(或n-k
最大值,取决于更容易/更快的值) 。原始数组不得更改,因为元素的索引包含信息。
网络上有多种解决此问题的方法(例如here)。但是,大多数方法都试图优化处理时间并忽略内存使用。
当我在(基于Arduino的)微控制器上用C ++实现代码时,我必须专注于低内存使用,并在必要时花费稍长的处理时间。因此,我对使用指针和递归感到不安全(也许,如果我对它有所了解的话可能不会,但是实际上我不知道。)
您能推荐哪种算法最适合该任务(欢迎实现但不是必需的实现)?