sleep sortをRubyで実装してみた。

常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream
元ネタは上記ですよ。

sleepsort.rb


#!/usr/bin/ruby

threads = []

ARGV.each do |number|
threads << Thread.new do
sleep number.to_f/10
puts number
end
end

threads.each do |thread|
thread.join
end

1秒Sleepしていると遅いので、待ち時間を1/10にしてみました。

実行結果


ruby sleepsort.rb 5 3 6 3 6 3 1 4 7

1
3
3
3
4
5
6
6
7