婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 冒泡排序算法及Ruby版的簡單實現

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

熱門標簽:湖州u友防封電銷卡 常德電銷平臺外呼系統軟件價格 滴滴外呼系統 百度地圖標注自定義圖片 地圖標注賺錢項目注冊 高德地圖標注客服 白銀外呼paas系統 電銷機器人廠商代理 徐州網絡外呼系統哪個好

算法原理:

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

實現
假設有這樣一個數組: [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]
這里比較就全部完成。原理非常簡單。

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
 end
end

您可能感興趣的文章:
  • Ruby實現的各種排序算法
  • Ruby實現的合并排序算法
  • Ruby實現的3種快速排序算法
  • Ruby一行代碼實現的快速排序
  • ruby實現的插入排序和冒泡排序算法
  • Ruby實現插入排序算法及進階的二路插入排序代碼示例

標簽:遼寧 張家界 公主嶺 荊門 普洱 梧州 三沙 永州

巨人網絡通訊聲明:本文標題《冒泡排序算法及Ruby版的簡單實現》,本文關鍵詞  冒泡,排序,算法,及,Ruby,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《冒泡排序算法及Ruby版的簡單實現》相關的同類信息!
  • 本頁收集關于冒泡排序算法及Ruby版的簡單實現的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 淳化县| 辰溪县| 定州市| 乌兰察布市| 太和县| 玉溪市| 剑阁县| 彭泽县| 彭山县| 汶上县| 涞水县| 房产| 白河县| 陆河县| 盐亭县| 申扎县| 敦煌市| 洛宁县| 静乐县| 婺源县| 湛江市| 新野县| 潞城市| 巩留县| 大姚县| 安图县| 西乡县| 乐平市| 凭祥市| 寻甸| 凌源市| 海门市| 肥东县| 清远市| 邹城市| 新昌县| 内江市| 建瓯市| 巴林左旗| 乌恰县| 黄龙县|