ちきさんです。
画期的なソートと言われている Sleep Sort が社内で話題になったので勢いで書きました。
(出典: 常識を覆すソートアルゴリズム!その名も"sleep sort"!)
デモ → http://jsbin.com/faloraz/7/edit?js,console
コードはたったこれだけです。
sleepsort.js
const array = [2, 4, 1, 5, 3]
Observable.from(array)
.flatMap(x => Observable.of(x).delay(x * 100)) // xが2なら200ms後に次に流す。
.toArray()
.subscribe(console.log)
ちなみにflatMap
はmergeMap
のエイリアスです。
このときの出力は下記の通りです。
[1, 2, 3, 4, 5]
確かにソートされていますね、素晴らしいです。