yzdz66
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 60 個(gè)
工控威望: 162 點(diǎn)
下載積分: 640 分
在線時(shí)間: 51(小時(shí))
注冊(cè)時(shí)間: 2016-09-23
最后登錄: 2024-12-03
查看yzdz66的 主題 / 回貼
樓主  發(fā)表于: 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
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 50 個(gè)
工控威望: 107 點(diǎn)
下載積分: 1209 分
在線時(shí)間: 22(小時(shí))
注冊(cè)時(shí)間: 2021-04-26
最后登錄: 2023-09-18
查看myearphones的 主題 / 回貼
1樓  發(fā)表于: 2022-03-24 10:11
引用
引用第1樓夢(mèng)雨天涯于2022-03-23 23:07發(fā)表的  :
大佬這個(gè)最后怎么輸出到D地址呢

冒泡排序,就是將一組數(shù)列按照從大到小或者從小到大的順序重新排列
現(xiàn)在最后排列好的數(shù)據(jù)還在數(shù)組wData里面,要賦值到D,之間加一個(gè)循環(huán)賦值就好
myearphones
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 50 個(gè)
工控威望: 107 點(diǎn)
下載積分: 1209 分
在線時(shí)間: 22(小時(shí))
注冊(cè)時(shí)間: 2021-04-26
最后登錄: 2023-09-18
查看myearphones的 主題 / 回貼
2樓  發(fā)表于: 2022-03-24 10:23
引用
引用第2樓胡志立于2022-03-24 10:03發(fā)表的  :
大佬,看不懂

冒泡排序,一種基本的數(shù)值排序方法,程序中是對(duì)數(shù)值進(jìn)行從大到小排序。
首先,依次將wData[0]中的數(shù)值與后面的wData[1...9]中數(shù)值相比較,如果后面的數(shù)值大,就將其與wData[0]中的數(shù)值交換。一個(gè)循環(huán)下來(lái),就能保證wData[0]中的數(shù)組為最大值;
然后,依次將wData[1]中的數(shù)值與后面的wData[2...9]中數(shù)值相比較,如果后面的數(shù)值大,就將其與wData[1]中的數(shù)值交換。這樣就能保證wData[1]中的數(shù)值為wData[1...9]中的最大值;。。。最后,比較wData[8]與wData[9],如果wData[9]大,就將其與wData[8]中的數(shù)值交換。全部循環(huán)完,數(shù)組wData中的數(shù)值就按照從大到小排序好了。