【えぬ】〜Theme of えぬ〜 にまつわるはてダ

2007-04-21

libcでqsort()を再帰を使って実装してる香具師は怠慢だろ…常識的に考えて libcでqsort()を再帰を使って実装してる香具師は怠慢だろ…常識的に考えて - 【えぬ】〜Theme of えぬ〜 にまつわるはてダ を含むブックマーク はてなブックマーク - libcでqsort()を再帰を使って実装してる香具師は怠慢だろ…常識的に考えて - 【えぬ】〜Theme of えぬ〜 にまつわるはてダ

タイトルは釣り。でもこの件は納得のいく答えがほしかったり。

はじめに

大学の頃アルゴリズムに関する教科書に書かれていたクイックソートの実装の過程に感動した記憶がある。

分割統治法によってソートを進めていくクイックソートを実装するにあたり、最初の実装では関数を再帰で呼び出していく、まあ最初はそれを思いつくよなという展開だったわけだが、次にアルゴリズムの特徴から、「実は再帰を使わなくてもいい」ことが解説され、非再帰に置き換えた実装も提示されていた。

そのとき「libcのqsort()はどんな実装になっているんだろう?」と興味を持ち、LinuxglibcFreeBSDのlibcを調べたことがあった。

あれから5年以上たって、そのときの結果を忘れてしまっていたので、改めて調べてみた。

再帰を使っていない実装

再帰を使っている実装

その他

トラックバック - http://d.hatena.ne.jp/n2s/20070421/p1