龍海兒
關(guān)注《電氣外傳》公眾號,知乎,CSDN等同號
級別: 論壇先鋒
![]() |
圖片:
![]()
圖片:
![]()
圖片:
![]() 1111MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal01111MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0 龍海兒11(同微博) 同《電氣外傳》微信公眾號 我們在做一些數據管理的時(shí)候,往往要取最大值、最小值、求平均值、求和等。然而要得到以上結果是不是需要先對數據進(jìn)行排序呢?那冒泡排序法自然是首選。讓我們一起來(lái)做一下吧。 創(chuàng )造一個(gè)情境,第一步肯定是先建立一個(gè)數組。我這里用的11個(gè)int類(lèi)型組成的數組(從0-10是11個(gè))。在里面隨機填上了0-10的亂序數據。 然后如圖開(kāi)始編寫(xiě)雙層for循環(huán)程序。外層循環(huán)控制排序的次數,11個(gè)數據只需要循環(huán)10次即可。因為最后一個(gè)肯定已經(jīng)滿(mǎn)足了要求。內層循環(huán)需要處理每次的比較,遍歷數組。實(shí)現數據移位和交換。切遍歷次數依次在減少。 最后循環(huán)結束就可以得到組從小到大排序好的數據了。那么最小最大值直接從第一個(gè)和最后一個(gè)傳送出去即可。求平均值和求和自然水到渠成,當然不排序也可以直接先去運算。 “冒泡”的含義其實(shí)就相當于把最大的數據從最后一個(gè)位置,通過(guò)交換操作,一步一步“浮現”到第一個(gè)位置的。實(shí)現方法比較簡(jiǎn)單,也易于理解。在一些小場(chǎng)景小規模數據處理中還是可以的,希望對大家有所幫助。 最后就寫(xiě)到這里,還是歡迎各位看官來(lái)深入討論和批評指正! |
|
---|---|---|
|
哈嘍123
不和不如自己的人爭高低論短長(cháng)!
級別: 略有小成
![]() |
我的建議是把提取的數放到一個(gè)新的數組里,而不是把現在的數組重新排序,例如現在的數組0的是7,按照你現在的思路,重新排序后的數組0變成了0,這不是一個(gè)好的解決辦法,把數組里的數排序、取值,都不能改變現有的數組對應的數值,但是,正如樓主說(shuō)的,處理這類(lèi)型的數組時(shí),SCL語(yǔ)言是最簡(jiǎn)潔的 |
---|---|
|
龍海兒
關(guān)注《電氣外傳》公眾號,知乎,CSDN等同號
級別: 論壇先鋒
![]() |
沒(méi)有最簡(jiǎn),只有更簡(jiǎn),重要的理解后,分兩個(gè),分三個(gè)數組都可以。正序和逆序都可以。當然還有其它排序方法, |
|
---|---|---|
|
龍海兒
關(guān)注《電氣外傳》公眾號,知乎,CSDN等同號
級別: 論壇先鋒
![]() |
啥最短路徑? |
|
---|---|---|
|
flyfeky
bilibili 工控小工匠孔
級別: 論壇先鋒
![]() |
//數組排序 #k := 99; // 輸入數組[0..99] WHILE #k >= 0 DO //外循環(huán) #j := 0; #i := 0; WHILE #i <= #k DO // 內循環(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; 我寫(xiě)了一個(gè),也調試好了,歡迎參考 ,博圖v16 , k ,j,buff i都是int類(lèi)型 ,arr是 [0..99] of int 輸入輸出類(lèi)型 |
|
---|---|---|
|