请问,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