はじめに
常識を覆すソートアルゴリズム!その名も"sleep sort"!が面白いですね!
というわけでさっそく実装してみました。
参考
- 常識を覆すソートアルゴリズム!その名も"sleep sort"!
- 16.6. multiprocessing — プロセスベースの “並列処理” インタフェース — Python 2.6ja2 documentation
- 25.2. doctest — 対話的な実行例をテストする — Python 2.7ja1 documentation
- Pythonでスリープソート書いてたら multiprocessing の最小構成サンプルになった - mizchi log
↑実は実装する前にこちらを見てしまいました。。同じmultiprocessingですが違う方法をとってみました。
sleep sortの仕様
ソース
実行結果
$ python -m doctest sleep_sort.py -v Trying: sleep_sort([]) Expecting: [] ok Trying: sleep_sort([9, 4, 3, 6, 7, 8, 2, 5, 1, 10]) Expecting: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ok 2 items had no tests: sleep_sort sleep_sort.put_queue 1 items passed all tests: 2 tests in sleep_sort.sleep_sort 2 tests in 3 items. 2 passed and 0 failed. Test passed.
まとめ
こういうの実装するの楽しいですね。 id:gfxさん面白いネタをありがとうございました。
multiprocessingは初めてつかってみたのだけど、きちんと理解しないといけないなー。
ぜひ変なところがあったら突っ込みをお願いします。