yzdz66
级别: 探索解密
精华主题: 0
发帖数量: 60 个
工控威望: 162 点
下载积分: 640 分
在线时间: 51(小时)
注册时间: 2016-09-23
最后登录: 2024-09-13
查看yzdz66的 主题 / 回贴
楼主  发表于: 2022-03-23 22:40
图片:
//冒泡排序算法
IF SM402 THEN
  wData[0]:=50;
  wData[1]:=41;
  wData[2]:=23;
  wData[3]:=1;
  wData[4]:=58;
  wData[5]:=77;
  wData[6]:=42;
  wData[7]:=3;
  wData[8]:=9;
  wData[9]:=99;
END_IF;

IF bLabel2 THEN
   FOR wi:=0 TO 9 BY 1 DO  
      // wj:=wi+1;
       FOR wj:=wi+1 TO 9 BY 1 DO
         IF wData[wi]<wData[wj] THEN
             wdata1:=wData[wi];
             wData[wi]:=wData[wj];
             wData[wj]:=wdata1;
         END_IF;
       END_FOR;
   END_FOR;
END_IF;  
    
myearphones
级别: 探索解密
精华主题: 0
发帖数量: 50 个
工控威望: 107 点
下载积分: 1209 分
在线时间: 22(小时)
注册时间: 2021-04-26
最后登录: 2023-09-18
查看myearphones的 主题 / 回贴
1楼  发表于: 2022-03-24 10:11
引用
引用第1楼梦雨天涯于2022-03-23 23:07发表的  :
大佬这个最后怎么输出到D地址呢

冒泡排序,就是将一组数列按照从大到小或者从小到大的顺序重新排列
现在最后排列好的数据还在数组wData里面,要赋值到D,之间加一个循环赋值就好
myearphones
级别: 探索解密
精华主题: 0
发帖数量: 50 个
工控威望: 107 点
下载积分: 1209 分
在线时间: 22(小时)
注册时间: 2021-04-26
最后登录: 2023-09-18
查看myearphones的 主题 / 回贴
2楼  发表于: 2022-03-24 10:23
引用
引用第2楼胡志立于2022-03-24 10:03发表的  :
大佬,看不懂

冒泡排序,一种基本的数值排序方法,程序中是对数值进行从大到小排序。
首先,依次将wData[0]中的数值与后面的wData[1...9]中数值相比较,如果后面的数值大,就将其与wData[0]中的数值交换。一个循环下来,就能保证wData[0]中的数组为最大值;
然后,依次将wData[1]中的数值与后面的wData[2...9]中数值相比较,如果后面的数值大,就将其与wData[1]中的数值交换。这样就能保证wData[1]中的数值为wData[1...9]中的最大值;。。。最后,比较wData[8]与wData[9],如果wData[9]大,就将其与wData[8]中的数值交换。全部循环完,数组wData中的数值就按照从大到小排序好了。