如何用寻找数组前个最大值从变量窗口中获取

 2024-01-09 00:01:06  阅读 0

比如我们有一个数组A,现在我们找到它的三个最大值和位置。

A(:) 将数组处理减少到一维。 然后使用sort对排序后的结果进行排序和转置(水平显示)

sort 可以有两个返回值。 如图,将排序后的列表放入AS,将元素原来的位置放入pos。

如图所示,最大的三个元素位于位置5、4、8。

我们回到原来的数组A,图中解释了序号的含义,就是从最低维度开始逐层排序。

分别圈出 5、4 和 8。

使用 A(位置列表)获取这些位置的数字。 如图所示,位置列表为[8,4,5]。 获得了三个最大的数字。

您也可以通过编程来完成这一切。 使用 (A()) 计算数组 A 中的元素数量。

排序后取出最后3个,从len-2到len。

既然要得到最大的k个元素,那么就相当于先得到最大的元素,然后再从剩下的元素中得到最大的k-1个元素……如果继续递归的话,可以多次使用max来完成它。

由于max获取最大值的时间复杂度为n,而排序的时间复杂度不小于nlog(n),因此如果k较小,该方法可能会更快。

代码如图所示。 获得最大元素后,将该元素设置为-inf,然后循环k次。

如何查找数组中的前k个最大值

从变量窗口中我们可以看到,运行后,我们得到了最大三个数,最大三个数的位置,以及修改后的临时数组。

标签: 数组 排序 如图

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码