読者です 読者をやめる 読者になる 読者になる

バブルソート

Rubyアルゴリズムの勉強してます。 元ネタはプログラミングコンテスト攻略のためのアルゴリズムとデータ構造です

バブルソート

# 配列の状態を画面に出力
def trace(ary)
    puts ary.join(", ")
end

# バブルソートを行う 
def bubbleSort(ary)
    n = ary.size
    flag = true
    i = 0
    while flag do
        flag = false
        j = n - 1
        while j >= i + 1 do
            if ary[j] < ary[j - 1]
                tmp = ary[j]
                ary[j] = ary[j - 1]
                ary[j - 1] = tmp
                flag = true
            end
            j -= 1
        end
        trace ary
        i += 1
    end
    ary
end

ary = gets.split(" ").map(&:to_i)
trace ary
bubbleSort ary