授業スライド「05アルゴリズムと計算量」の練習問題の解答例です。
• 配列 a の(先頭を0 番目としたときの)i 番目 以降の値の中で、最小値が出現する番号を
答える min_index(a,i) を追加して、単純整列 法を完成させよ。
def min_index(a,i)
min = i
for j in (i+1)..(a.length()-1)
if a[j] < a[min]
min = j
end
end
min
end
• 省略された部分を補って関数 merge を完成させよ。
(青色が省略されていた部分)
def merge(a,b)
c = Array.new(a.length()+b.length())
ia=0
ib=0
ic=0
while ia < a.length() && ib < b.length()
if a[ia] < b[ib]
c[ic]=a[ia]
ia = ia + 1
else
c[ic] = b[ib]
ib = ib + 1
end
ic = ic +1
end
if ia < a.length()
for j in ic..(c.length()-1)
c[j] = a[ia]
ia = ia +1
end
else
for k in ic..(c.length()-1)
c[k] = b[ib]
ib = ib +1
end
end
c
end
0 件のコメント:
コメントを投稿