#!/usr/koeki/bin/ruby
# coding: utf-8
def qsort(data) # 配列を受け取る
if data.length <= 1 # データが1個以下なら
data # そのものを返して並べ換え完了
else
left = Array.new # left(左側配列)を新規作成
right = Array.new # right(右側配列)を新規作成
k = data.shift # 変数dataの先頭を取り出してkにする
for x in data # 残ったdata全てに対して繰り返す
if x > k # kより大きかったら
left << x # 左側に追加
else
right << x # 右側に追加
end
end # 繰り返し終わり
# qsort(left)の末尾にkを足し、さらにqsort(right)を結合
qsort(left).push(k) + qsort(right)
end
end
def readNumArray()
ary = []
while line=gets # 入力が続く間
datum = line.chomp!.to_i # 整数に直して
ary.push(datum) # aryに追加していく
end
ary # 最後にaryを呼び主に返す
end
def printArray(a)
printf("[%s]\n", a.join(", "))
end
ary = readNumArray()
puts "整列前:"
printArray(ary)
puts "整列後:"
printArray(qsort(ary))