查看: 2050|回复: 19
收起左侧

[教程经验] (*冒泡排序法*)源码

huic1001 2021-9-19 07:24:00 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
(*冒泡排序法*)源码
声明
FUNCTION_BLOCK FB_BubbleSortMethod_1
VAR_INPUT
        EN:BOOL;//ENABLE      
    moder_mode;
        data_IN:ARRAY[0..9] OF INT;
END_VAR
VAR_OUTPUT
        ENO:BOOL;//out
        data_OUT:ARRAY[0..9] OF INT;
END_VAR
VAR
        ARR:ARRAY[0..9] OF INT;
        N: INT;
        I: INT;
        M: INT;
        J: INT;
        T: int;
END_VAR

程序
ENO:=EN;
ARR:=data_IN;
IF EN THEN      
        IF MODE=InvertedSequence THEN
        FOR  N:=0 TO 9 BY 1 DO
            IF I<9-N THEN I:=9-N; END_IF      
                FOR M:=0 TO i-1 BY 1 DO
                        J:=M+1;                 
           IF  ARR[M]>ARR[J] THEN
                                T:=ARR[M];
                                ARR[M]:=ARR[J];
                                ARR[J]:=T;
                   END_IF                       
                END_FOR
        END_FOR
        ELSIF MODE=seriation THEN
        FOR  N:=0 TO 9 BY 1 DO
            IF I<9-N THEN I:=9-N; END_IF      
                FOR M:=0 TO i-1 BY 1 DO
                        J:=M+1;                 
           IF  ARR[M]<ARR[J] THEN
                                T:=ARR[M];
                                ARR[M]:=ARR[J];
                                ARR[J]:=T;
                   END_IF                       
                END_FOR
        END_FOR
        END_IF
END_IF
IF NOT EN THEN
        data_OUT[0]:=
        data_OUT[1]:=
        data_out[2]:=
        data_out[3]:=
        data_out[4]:=
    data_out[5]:=
        data_out[6]:=
        data_out[7]:=
        data_out[8]:=
        data_out[9]:=0;
END_IF
data_OUT:=ARR;

点评

看看  发表于 2023-7-13 08:13
这个算法好,通用性能强666  发表于 2023-7-5 10:11




上一篇:欧姆龙plc 4.4 轴的电流环(转矩)控制
下一篇:关于电脑与PLC通过无线路由器连接的问题

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

Slimming 2021-11-2 10:14:34 | 显示全部楼层
冒泡排序法复杂度是n²,占用资源比较多,推荐插入排序法简单实用。
将数据按照一定的顺序一个一个的插入到有序的表中,最终得到的序列就是已经排序好的数据。
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部