示例**純粹是為了加深印象,選擇的目標語言有更便捷的實現方式,另外去掉了一些假設條件檢查。
#encoding:gbk
size = 20
arr = array.new(size) do #初始化待排序陣列,隨機填寫元素
rand(size)
enddef merge(a,p,q,r)
one = a[p,q - p + 1] #括弧中第二引數是元素個數,容易坑
two = a[q + 1,r - q]
one << float::infinity
two << float::infinity
i = j = 0
for k in p..r
if one[i] < two[j]
a[k] = one[i]
i += 1
else
a[k] = two[j]
j += 1
endend
enddef merge_sort(a,p,r)
if p < r
q = (p + r) / 2
merge_sort(a,p,q) #遞迴合併
merge_sort(a,q + 1,r)
merge(a,p,q,r)
endendputs arr.inspect
arrc = arr.clone
merge_sort(arrc,0,arrc.size - 1)
puts arrc.inspect
輸出如下:
---------- ruby ----------
[2, 1, 16, 4, 16, 9, 8, 0, 7, 16, 4, 16, 9, 5, 14, 5, 10, 12, 17, 11]
[0, 1, 2, 4, 4, 5, 5, 7, 8, 9, 9, 10, 11, 12, 14, 16, 16, 16, 16, 17]
output completed (0 sec consumed) - normal termination
演算法回鍋肉 氣泡排序
示例 純粹是為了加深印象,選擇的目標語言有更便捷的實現方式,另外去掉了一些假設條件檢查。encoding gbk size 20 arr array.new size do 初始化待排序陣列,隨機填寫元素 rand size enddef bubble sort a b a.clone i j 0 ...
演算法回鍋肉 堆排序
示例 純粹是為了加深印象,選擇的目標語言有更便捷的實現方式,另外去掉了一些假設條件檢查。encoding gbk size 20 class array attr accessor heap size endarr array.new size do 初始化待排序陣列,隨機填寫元素 rand siz...
回鍋肉的做法
回鍋肉用料 豬肉 瘦 250克 回鍋肉輔料 青椒 45克 青蒜 30克 回鍋肉調料 甜麵醬 20克 豆瓣辣醬 10克 白砂糖 10克 味精 5克 植物油 30克 各適量 回鍋肉製作工藝 1.肉沖淨,整塊放入冷水中約煮20分鐘 2.用筷子試插,如無血水滲出即已熟透,撈出,待冷卻後切成薄片備用 3.青椒...