※ メインのブログにてエントリを作成しました、よかったらご覧くださいませ。
最近「スターリンソート」とか「Abeソート」とか流行ってる(?)ので、うろ覚えでアレだが「コミューンソート」というものを設計してみました。ちゃんとソートされてるのでアルゴリズムとしては成立してるはずです(ぉぃ)
O(n)記法だとどうなるのか? そんなのは国(どこ)に聞いてください。粛清はしてません、ソートの素材がなくなりますから。
※ なお、なにが「コミューン」なのかについては、詳しくはよくわかってません、ふんわりすぎます。そのあたりはご留意ください。
def ideal(list)
[list.sum.fdiv(list.size)] * list.size
end
def real(list)
[0] * (list.size - 1) + [list.sum]
end
list = [3, 5, 2, 7, 9, 10, 50, 1, 5, 20]
p list, ideal(list), real(list)
※ scivolaさんありがとうございました、sumなんてあったんですね… 私のRuby知識…古すぎ?
real()
は一番金持ちのところに集約されるかということも考えられるのですが、ソートにならないので最後にしてます。それとも降順ソートにすべき?