講義でソートアルゴリズムを教えることになったので,改めてソートアルゴリズムの勉強をしなおした.僕がソートアルゴリズムをちゃんと勉強したのは1990年代前半で,教科書はニクラウス・ヴィルト「アルゴリズムとデータ構造」(第2版)だった.サンプルコードがModula-2で書かれているアレだ. N. ヴィルト「アルゴリズムとデータ構造」C++ STL の解説を読むなどしてソートアルゴリズムの改良が進んでいるのは知っていたが,再勉強してはじめて,未だに新発明があることを知った.例えば図書館ソートなど,恥ずかしながら名前さえ知らなかった.勉強は大事だ. とは言え,そもそもソートアルゴリズムの中身をどのぐらいまで知っておけば,コンピュータサイエンティストとして十分なのだろう,あるいはエンジニアとして十分なのだろうという疑問は残る. 例えば,超優秀なC++プログラマでもGNUの std::sort の中身
![コンピュータサイエンティストはソートアルゴリズムの中身を知るべきか](https://cdn-ak-scissors.b.st-hatena.com/image/square/c5eea6b7487e32d9c45dd949c6be3a65cf35e33d/height=288;version=1;width=512/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A351%2F1%2AtpbTmv8xhGZS83MtCjf6Yg.jpeg)