学ぶ
id:morchi氏からの指摘
> sort()って確かクイックソートが実装されてるんじゃなかったっけかな。
「Pythonクックブック 第2版」によれば、Python 2.3で「最適、自然、安定」マージソート(通称timsort)が実装されたらしいです。
2.5ならソースコードのObjects/listsort.txtに詳細が書いてあります。
これに従い、手元にある「Pythonクックブック第2版」を読む。
第5章P197にあった!
最終的な「最適、自然、安定」マージソートはPython2.3に実装されて大成功を収めるが、これはまたエンジニアリング上の大苦労でもあった(中略)Pythonソース配布中に長い技術情報を書いたので、興味のある向きはメインディレクトリの下のObjects/listsrt.txt(ただしPython2.3.5およびPython2.4の場合)を参照されたい。
確かに。
ちなみにクイックソートが実装されている、と勘違いしていた元ネタ。
プログラミングの宝箱 アルゴリズムとデータ構造 (C magazine)
- 作者: 紀平拓男,春日伸弥
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2003/06/14
- メディア: 単行本
- 購入: 4人 クリック: 25回
- この商品を含むブログ (38件) を見る
実は、C言語の標準ライブラリに含まれている「qsort()」という関数は、多くの処理系でクイックソートを利用して実装されています。
いい加減なことは言うもんじゃない。
id:morchinさん、ありがとうございました。
知識がひとつ増えました。
余力のあるときにソースを見て勉強してみたいと思います。