龍海兒
關注《電氣外傳》公眾號,知乎,CSDN等同號
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 332 個
工控威望: 1233 點
下載積分: 844 分
在線時間: 97(小時)
注冊時間: 2018-04-13
最后登錄: 2025-05-23
查看龍海兒的 主題 / 回貼
樓主  發(fā)表于: 21天前
圖片:
圖片:
圖片:
1111MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal01111MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0
龍海兒11(同微博)      同《電氣外傳》微信公眾號


我們在做一些數(shù)據(jù)管理的時候,往往要取最大值、最小值、求平均值、求和等。然而要得到以上結果是不是需要先對數(shù)據(jù)進行排序呢?那冒泡排序法自然是首選。讓我們一起來做一下吧。


創(chuàng)造一個情境,第一步肯定是先建立一個數(shù)組。我這里用的11個int類型組成的數(shù)組(從0-10是11個)。在里面隨機填上了0-10的亂序數(shù)據(jù)。


然后如圖開始編寫雙層for循環(huán)程序。外層循環(huán)控制排序的次數(shù),11個數(shù)據(jù)只需要循環(huán)10次即可。因為最后一個肯定已經(jīng)滿足了要求。內(nèi)層循環(huán)需要處理每次的比較,遍歷數(shù)組。實現(xiàn)數(shù)據(jù)移位和交換。切遍歷次數(shù)依次在減少。


最后循環(huán)結束就可以得到組從小到大排序好的數(shù)據(jù)了。那么最小最大值直接從第一個和最后一個傳送出去即可。求平均值和求和自然水到渠成,當然不排序也可以直接先去運算。
“冒泡”的含義其實就相當于把最大的數(shù)據(jù)從最后一個位置,通過交換操作,一步一步“浮現(xiàn)”到第一個位置的。實現(xiàn)方法比較簡單,也易于理解。在一些小場景小規(guī)模數(shù)據(jù)處理中還是可以的,希望對大家有所幫助。
最后就寫到這里,還是歡迎各位看官來深入討論和批評指正!

關注《電氣外傳》公眾號,知乎,CSDN等同號
哈嘍123
不和不如自己的人爭高低論短長!
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 182 個
工控威望: 377 點
下載積分: 1685 分
在線時間: 29(小時)
注冊時間: 2023-03-02
最后登錄: 2025-05-28
查看哈嘍123的 主題 / 回貼
1樓  發(fā)表于: 21天前
我的建議是把提取的數(shù)放到一個新的數(shù)組里,而不是把現(xiàn)在的數(shù)組重新排序,例如現(xiàn)在的數(shù)組0的是7,按照你現(xiàn)在的思路,重新排序后的數(shù)組0變成了0,這不是一個好的解決辦法,把數(shù)組里的數(shù)排序、取值,都不能改變現(xiàn)有的數(shù)組對應的數(shù)值,但是,正如樓主說的,處理這類型的數(shù)組時,SCL語言是最簡潔的
1421448580
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 237 個
工控威望: 341 點
下載積分: 13366 分
在線時間: 909(小時)
注冊時間: 2015-10-10
最后登錄: 2025-05-26
查看1421448580的 主題 / 回貼
2樓  發(fā)表于: 21天前
大佬  寫個最短路徑搜索吧 讓大家膜拜一下
龍海兒
關注《電氣外傳》公眾號,知乎,CSDN等同號
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 332 個
工控威望: 1233 點
下載積分: 844 分
在線時間: 97(小時)
注冊時間: 2018-04-13
最后登錄: 2025-05-23
查看龍海兒的 主題 / 回貼
3樓  發(fā)表于: 21天前
引用
引用第1樓哈嘍123于2025-05-08 09:22發(fā)表的  :
我的建議是把提取的數(shù)放到一個新的數(shù)組里,而不是把現(xiàn)在的數(shù)組重新排序,例如現(xiàn)在的數(shù)組0的是7,按照你現(xiàn)在的思路,重新排序后的數(shù)組0變成了0,這不是一個好的解決辦法,把數(shù)組里的數(shù)排序、取值,都不能改變現(xiàn)有的數(shù)組對應的數(shù)值,但是,正如樓主說的,處理這類型的數(shù)組時,SCL語言是最簡潔的

沒有最簡,只有更簡,重要的理解后,分兩個,分三個數(shù)組都可以。正序和逆序都可以。當然還有其它排序方法,
關注《電氣外傳》公眾號,知乎,CSDN等同號
龍海兒
關注《電氣外傳》公眾號,知乎,CSDN等同號
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 332 個
工控威望: 1233 點
下載積分: 844 分
在線時間: 97(小時)
注冊時間: 2018-04-13
最后登錄: 2025-05-23
查看龍海兒的 主題 / 回貼
4樓  發(fā)表于: 21天前
引用
引用第2樓1421448580于2025-05-08 09:57發(fā)表的  :
大佬  寫個最短路徑搜索吧 讓大家膜拜一下

啥最短路徑?
關注《電氣外傳》公眾號,知乎,CSDN等同號
flyfeky
bilibili 工控小工匠孔
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 906 個
工控威望: 1058 點
下載積分: 2037 分
在線時間: 690(小時)
注冊時間: 2012-05-09
最后登錄: 2025-05-26
查看flyfeky的 主題 / 回貼
5樓  發(fā)表于: 15天前
//數(shù)組排序
#k := 99;  //  輸入數(shù)組[0..99]
WHILE #k >= 0 DO  //外循環(huán)
    #j := 0;
    #i := 0;
    WHILE #i <= #k DO  // 內(nèi)循環(huán)
        IF #arr[#j] < #arr[#i] THEN
            #j := #i;  // 記下最大值下標
        END_IF;
        IF #i = #k  THEN   // 循環(huán)完成交換當前值和最大值
            #buff := #arr[#i];
            #arr[#i] := #arr[#j];
            #arr[#j] := #buff;
        END_IF;
        #i := #i + 1;
    END_WHILE;
    #k := #k - 1;
END_WHILE;           我寫了一個,也調(diào)試好了,歡迎參考 ,博圖v16  , k ,j,buff   i都是int類型   ,arr是 [0..99] of int  輸入輸出類型
西門子倍福WPF+C#數(shù)據(jù)庫,槽式設備專家