ソート
2022/4/24 18:38:00
やることリスト(TODOリスト)が大きくなると並び替えがしんどくなる。
そこでクイックソートを応用する。
この操作では重要なものほど重要度に応じて精緻に並ぶ。重要でないものの重要度は比較しない。どうせやらないので。
完全に並び替えず、大体のところで終わらせると良い。重要度は日々変化する。揺らぎを受け止める緩みを持たせる。星マークが完全に階段になると揺らぎを受け止められない。
クイックソートよりももっと楽な方法があるかもしれない。先頭の項目の重要度が低いと、★だらけになる。
バブルソートはだめだった。いくつかのタスクに★がついてないとやる気にならなかった。1回リストをなめれば最も重要なタスクが一番上に来るのは良かった。
やることリストの中に階層があるとこれはできない(やりにくい)
並び替えの様子
値が同じだが異なるオブジェクトのBufferの比較をする際、==
を使ったらfalse
になった。
ハッシュ化したパスワードの比較をしたかったので、crypto.timingSafeEqual
を使ったところ、想定通り、同値の場合はtrue
を返すようになった。
BufferにはBuffer#compare
というメソッドもある。Bufferの配列をソートしたいときにはこちらを使うと良いらしい。
TODOリストにしろ、いいねしたツイートにしろ、要素が大きくなるほど管理(要素の探索、ソート、変更、削除)が大変になる。
https://twitter.com/tuppye/status/1323551930518437890