
■
385
12
章
結び:アルゴリズムの
諸原則
いよいよ最後の章になったが、読者が興味を持ったアルゴリズムについてどれだ
けの情報が見つかるかと言えば、ほとんど際限がないだろう。実際、本書で学んだ
技法を適用できる問題の種類にはきりがない。
ここで、本書で詳細を述べ、例を示した
30
あまりのアルゴリズムについて、一呼
吸置いてまとめておくことにしよう。読者は、本書で試みた事柄の達成度に満足さ
れたはずだ。取り扱った内容の広範さを示すために、本書で述べたアルゴリズムの
背後にある諸原則をまとめる。これによって、異なる問題のために設計された異な
るアルゴリズムの間の類似性が示される。単純に各章をまとめるのではなくて、ア
ルゴリズム設計に大きな役割を果たした基本原則に焦点を当てて、本書を終わるこ
とにしよう。また、この機会に、アルゴリズムで使われた諸概念もまとめておく。
これにより、異なるアルゴリズムの間で共有されている概念から
アルゴリズムを参
照することもできるだろう。
12.1
汝のデータを知れ
データについて行う必要のある、さまざまな基本処理について論じてきた。特
定の順序付けでデータを整列する必要が生じることもある。情報を見つけるために
データを探索することもある。データは、ランダムにアクセスできる(その場合には、
いつでも必要な情報を取り出せる)こともあれば、イテレータを使って順にアクセス
する(この場合には、要素が
1
つずつ生成される)こともある。データについての知
識がないと、非常に一般的な形でしかア