国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Ruby > 正文

簡要介紹冒泡排序算法及Ruby版的簡單實現

2020-02-24 15:36:17
字體:
來源:轉載
供稿:網友

冒泡排序算法是最基本的算法,其核心是通過比較同一類型的兩個相鄰數據來交換數據,這里武林技術頻道小編將簡要介紹冒泡排序算法及Ruby版的簡單實現,一起進入下文了解一下吧!

算法原理:

比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。在這一點,最后的元素應該會是最大的數。
針對所有的元素重復以上的步驟,除了最后一個。
持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

實現
假設有這樣一個數組: [4, 1, 3, 2]
冒泡排序為從第一個數開始,吧這個數與后面的數比較,如果這個數比后面的大,就交換他們的位置。
比如,第一次比較4和1,發現4比1大,交換 -> [1, 4, 3, 2]
第二次比較4和3,發現還是4大,交換 -> [1, 3, 4, 2]
第三次比較4和2,仍然4比2大,交換 -> [1, 3, 2, 4]
這樣在進行了第一輪循環之后,最大的數4就被頂到數組的最后去了,就像泡泡一樣從水底冒起來一樣。那么,要完成整個數組的排序,只需要把最大的數頂到最后,然后第二輪再把第二大的數頂到倒數第二的位置,再來第三輪。。。。一直循環下去。

回到剛才的數組,第二輪比較開始,現在的狀態是[1, 3, 2, 4]
比較1和3,1小于3,跳過 -> [1, 3, 2, 4]
比較3和2,3大于2,交換 -> [1, 2, 3, 4]
這一輪到這里就可以停止了,因為第一輪已經把最大的4頂到了最后,所以第二輪只要確保第二大的數頂到倒數第二就行。

然后繼續第三輪(雖然目前看起來已經排序完成了)
比較1和2,不用交換[1, 2, 3, 4]
這里比較就全部完成。原理非常簡單。

ruby.html="" tags="">ruby;">def bubble_sort(list) list.each_index do |index|  (list.length - index - 1).times do |e|   if list[e] > list[e + 1]    list[e], list[e + 1] = list[e + 1], list[e]   end  end endend以上就是關于簡要介紹冒泡排序算法及Ruby版的簡單實現,后續的知識武林技術頻道會繼續和大家分享,這是一個漫長的學習和積累的過程,希望大家能不斷的進步。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 谷城县| 南通市| 鄂州市| 永善县| 南汇区| 新化县| 德昌县| 观塘区| 新干县| 烟台市| 兴仁县| 中卫市| 恩平市| 清流县| 石首市| 梨树县| 武乡县| 石柱| 九寨沟县| 五台县| 巩留县| 锦州市| 萨迦县| 弋阳县| 丰镇市| 安顺市| 仁怀市| 德钦县| 新兴县| 铜川市| 西林县| 岳普湖县| 丹凤县| 桃江县| 永州市| 寿宁县| 沁阳市| 墨玉县| 平安县| 东丽区| 西吉县|