在2D阵列中找到n个最大元素位置

时间:2010-11-05 01:09:01

标签: c++ optimization

如何在2D数组中找到'n'个最大元素位置? 有没有一个好的算法,除了蛮力?

谢谢

1 个答案:

答案 0 :(得分:4)

您可以在二维数组中找到n个最大元素(及其位置),就像在一维数组中一样有效。

a variety of selection algorithms以线性时间运行。 Quickselect具有线性平均时间复杂度,但与Quicksort一样,在最坏的情况下可以是二次方的。中值中值算法具有预期和最坏情况线性时间复杂度。

当然,如果对元素进行排序,那么这很简单:转到数组的末尾并从那里选择所需数量的元素。这可能需要一些逻辑,具体取决于数组在两个维度中的排序方式,但这并不困难。