アルゴリズム入門

アルゴリズム ニュウモン

プログラミングの考え方がわかる

アルゴリズム入門の表紙
コンピュータサイエンス / アルゴリズム
著者:
石橋亨(イシバシ, トオル)
出版社:
工学社
出版日:
2014年07月
ISBN:
9784777518456
シリーズ:
I / O books
在庫:
在庫あり
4(2 件 / 楽天ブックス)

なぜ注目されているか

総合306位 ↓ 50 ランクダウン 言及 3 件
言及数
659位

技書の森解説

『アルゴリズム入門』 (石橋 亨 著、工学社、2014 年 7 月刊) は、フローチャートの書き方とプログラムの基本構造から、検索とソート、データ構造までを順に学び、プログラミングの考え方を身につけるための入門書です。副題はプログラミングの考え方がわかる、工学社の I/O BOOKS の一冊です。版元は、アルゴリズムをプログラムがどのような流れで実行されていくかという基本と位置づけ、アルゴリズムとは何か、フローチャートの書き方といった基礎から、データ構造や検索 / ソートなど実践に役立つ具体的な話題までを、実務家ならではの視点から効率的に解説すると紹介しています。欧文の書名として Introduction to Algorithms が添えられていますが、NDL の書誌に原タイトルの記載は無く、石橋 亨 の著書として登録されています。

フローチャートから卒業試験まで、全 12 章の構成

目次ははじめにと全 12 章、索引で構成されています。1 章のアルゴリズムとはで、横断歩道を渡るにはどうするかといった身近な題材や、良いアルゴリズムとは何かを考えたあと、2 章でフローチャートの記号と構造を学び、3 章の順次構造、4 章の分岐構造、5 章の反復構造で、処理の流れを組み立てる 3 つの型を 1 つずつ掘り下げます。6 章の配列では 2 次元配列や素数を求める例を扱い、7 章の検索ではサブルーチン、リニア・サーチ、バイナリ・サーチ、ルックアップ・テーブルに続けて、選択ソート、バブル・ソート、挿入法、クイック・ソートまでを取り上げます。8 章は文字列のコピーや比較、連結、検索といった文字列処理、9 章のデータ構造は構造体から線形リスト、双方向リスト、環状リスト、ベクター、木、二分探索木、スタック、キュー、ハッシュテーブル、マップまでを扱います。10 章のセキュリティでは乱数と疑似乱数、誤り検知と改ざん検知、暗号化を、11 章の卒業試験ではジュースの自動販売機、エレベーター、落ちものパズル・ゲームを題材にし、12 章のアルゴリズム以外の設計ではユースケース図、データフロー・ダイアグラム、シーケンス図、状態遷移図を紹介します。手順の組み立てを学んだあとに身近な機械やゲームの動きを考える章を置く並びは、覚えた型を組み合わせて使う段階を意識した構成と読めます。

順次 / 分岐 / 反復と探索の前提、アルゴリズムの基礎が効く理由

プログラムの処理の流れは、上から順に実行する順次、条件によって道を分ける分岐、同じ処理をくり返す反復の 3 つの組み合わせで表せることが知られており、構造化プログラミングの土台になっています。フローチャートでこの 3 つを図として描けるようになると、言語の文法に気を取られずに手順そのものの正しさを検討でき、どの言語で書くときにも通じる考え方が残ります。探索とソートが近くに並ぶのにも理由があります。先頭から順に調べるリニア・サーチは並び順を問わない代わりにデータが増えるほど時間がかかり、ソート済みのデータを半分ずつ絞り込む 二分探索の考え方 は速い代わりに、あらかじめ並べ替えておくことを前提にします。データ構造も同じで、配列は位置を指定した読み出しが速く、要素どうしをつなぐ連結リスト は途中への挿入や削除がしやすいといった得手不得手があり、どの構造を選ぶかで同じ処理の手間が大きく変わります。アルゴリズムを学ぶ意味は、こうした選択の理由を自分で説明できるようになるところにあります。

プログラミング初学者に向く使い方と、アルゴリズム入門書としての範囲

文法の学習を終えたものの、自分で処理の手順を組み立てようとすると手が止まる初学者や、フローチャートで流れを整理する習慣を付けたい人には、基本構造から 1 つずつ進む本書の並びが合います。一方で、目次には計算量の理論や証明を扱う章は見当たらず、大学の講義水準でアルゴリズムを厳密に学びたい人や、競技プログラミングの問題演習を求める人には目的がずれます。また、プログラム例がどの言語で書かれているかは目次と紹介文からは確認できないため、特定の言語での実装を目当てにする場合は版元ページの内容見本で確かめておくと安心です。目的に合うアルゴリズム本の種類を見比べたい場合は、アルゴリズム本ガイド で 3 つのタイプの違いを確かめておくと選びやすくなります。

裏返せば、書いたコードが動いても、なぜその手順を選んだのかを説明できずにいる人にとって、フローチャートで流れを描くところから探索とソート、データ構造、卒業試験の応用例までを 1 冊で通せる本書は、言語に依存しない考え方の土台を固めるための手ごろな一冊です。

言及した記事 (3 件)

関連記事

関連用語

共有: