主頁 > 知識庫 > Ruby實現(xiàn)的合并排序算法

Ruby實現(xiàn)的合并排序算法

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

算法課的作業(yè),利用分治法,合并排序。

#encoding: utf-8
#author: xu jin, 4100213
#date: Oct 27, 2012
#MergeSort
#to sort an array by using MergeSort algorithm
#example output:
#The original array is:[4, 32, 84, 58, 49, 40, 75, 29, 82, 21, 70, 37, 70]
#The sorted array is: [4, 21, 29, 32, 37, 40, 49, 58, 70, 70, 75, 82, 84]

MAX = 100
arrayInt = Array.new
for index in (0..12)
 arrayInt[index] = rand(100) #produce 12 random number
end
puts "The original array is:" + arrayInt.to_s

def merge(arr, left, middle, right)
 arrL ,arrR = Array.new, Array.new
 arrL[0..(middle - left)], arrR[0..(right - middle - 1)] = arr[left..middle], arr[middle + 1.. right]
 arrL[arrL.size] ,arrR[arrR.size]= MAX, MAX
 for k in (left..right)
  arrL.first = arrR.first ? (arr[k] = arrL.shift) : (arr[k] = arrR.shift)
 end
end

def merge_sort(arr, left, right)
 if left  right then
  middle = (left + right)/2
  merge_sort(arr, left, middle)
  merge_sort(arr, middle + 1, right)
  merge(arr, left, middle, right)
 end
end

merge_sort(arrayInt, 0, arrayInt.length-1)
puts "The sorted array is: " + arrayInt.to_s

您可能感興趣的文章:
  • Ruby實現(xiàn)的各種排序算法
  • ruby實現(xiàn)的插入排序和冒泡排序算法
  • Ruby實現(xiàn)的矩陣連乘算法
  • Ruby實現(xiàn)二分搜索(二分查找)算法的簡單示例
  • Ruby實現(xiàn)的3種快速排序算法
  • Ruby實現(xiàn)的最優(yōu)二叉查找樹算法
  • Ruby實現(xiàn)的圖片濾鏡算法代碼

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ruby實現(xiàn)的合并排序算法》,本文關(guān)鍵詞  Ruby,實現(xiàn),的,合并,排序,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ruby實現(xiàn)的合并排序算法》相關(guān)的同類信息!
  • 本頁收集關(guān)于Ruby實現(xiàn)的合并排序算法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章