如何得到数据的次大值和次小值

我的数据是每一秒中获取一次,我要在30秒将得到的30个数找出次大值和次小值,因为最大最小我已经找出来了。

问题补充:
声明下,我不排序,只是找出值。排序的话还要新建DB块储存 。而且如果排序数目过多,数据过大,这边没循环完成另外一边又有新的数据过来了。会导致死机。我只希望将我得到的数找到次大和次小。不要在跟我说什么冒泡程序了,那个东西我会。 请认真看我的程序

图片说明:

如何得到数据的次大值和次小值   

最佳答案

你采集的数据为30个双字,加上需要的最大、最小、第二大、第二小总共34个双字。

在程序中你可以在DB中分配34个双字,初始化为从dbd0---dbd132为从小到大排列。

采集数据时把它们存在2--31这30个双字中,然后采用类似冒泡排序的方式,第一遍对全部34个数扫描可以取出最小值和最大值,并把它们存在dbd0和dbd132中,第二遍就可以对除去最大最小值后的32个数扫描取出次小值和次大值,并把它们存在dbd4和dbd128中。

提问者对于答案的评价:
thanks

专家置评

已阅,最佳答案正确。除了冒泡算法外,还可以在得出最大值和最小值后,去除这两项,再次寻找最大值和最小值,即可得出次极值。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc220047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年12月7日 下午12:43
下一篇 2017年12月7日 下午12:43

相关推荐