S7-1200 如何对数组进行由大到小排序?

请问,S7-1200 如何对数组进行由大到小排序?实际上我要取出数组里的第二最大和第二最小,请问除了冒泡法还有什么便捷的方法呢?

最佳答案

选择排序法,交换次数比冒泡排序少多了,由于交换所需CPU时间比比较所需的CPU时间多,n值较小时,选择排序比冒泡排序快。百度搜索其定义。
#tempArray := #inArray;
FOR #n := 1 TO 9 DO
    #max := #n;
    FOR #i := #n + 1 TO 10 DO
        //比较查找最大值
        IF #tempArray[#i] > #tempArray[#max] THEN
            #max := #i;
        END_IF;
    END_FOR;
   //交换最大值
   #temp := #tempArray[#n];
   #tempArray[#n] := #tempArray[#max];
   #tempArray[#max] := #temp;
   
END_FOR;

//输出第二大和第二小
#Second_Biggest := #tempArray[2];
#Second_Smallest := #tempArray[9];

//输出排序后数组;
#after := #tempArray;

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

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

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

相关推荐