1、排序算法是很多算法的基础,这里给大家贴出SCL的冒泡排序算法,仅供参考,欢迎点赞、评论、交流....
FUNCTION "Bubble Sort优化RXXW" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
start : Bool;
END_VAR
VAR_IN_OUT
seqdata : Array[*] of UInt; // 采集信号序列
END_VAR
VAR_TEMP
SeqLowBnd : DInt; // 数组下限
SeqUpBnd : DInt; // 数组上限
SeqSize : DInt; // 数组长度
i : DInt;
j : DInt;
tempUint : UInt;
change : Bool;
END_VAR
BEGIN
//苏州润鑫玄武自动化系统集成有限公司
//冒泡排序算法 优化
REGION SequenceSize //可变数组,确定数组大小
#SeqLowBnd := LOWER_BOUND(ARR := #seqdata, DIM := 1);
#SeqUpBnd := UPPER_BOUND(ARR := #seqdata, DIM := 1);
#SeqSize := #SeqUpBnd - #SeqLowBnd + 1;
END_REGION
IF #start THEN
//冒泡排序 优化(如果原有排列就是按从小到大,只要一个循环就结束)
//排序队列不大的情况下,时间复杂度相差不会太大.
REGION ExternalLoop
FOR #i := 1 TO #SeqSize
|