アルゴリズムがわかる図鑑(アルゴリズムガワカルズカン)
ハードウェア- 著者:
- 松浦 健一郎/司 ゆき(マツウラ ケンイチロウ/ツカサ ユキ)
- 出版社:
- 技術評論社
- 出版日:
- 2022年01月06日
- ISBN:
- 9784297125530
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
あのややこしそうなアルゴリズムがこんなにわかりやすいなんて!
動物たちの会話やアクションを読んだり見たりしていくだけで、むりなくアルゴリズムの基本が身につく、楽しい図鑑です。
お手元のパソコンで手軽に動かして実感できる Python 実習つき。
■第 1 章 しまう ─ データ構造
1-1 どれを選べば楽々? ─ データ構造
1-2 積み上げる ─ スタック
1-3 早い者順に並ぶ ─ キュー
1-4 使うデータ構造しだいで答えを出す手間が変わる
1-5 パソコンをネジ回しで開けると見えるヒント ─ メモリ
1-6 メモリにそっくり!? ─ 配列
1-7 チャレンジ! 配列を使ったプログラム
【コラム】 Linux における Python のインストール
1-8 矢印があれば移動が減る ─ 連結リスト
1-9 枝分かれを表現 ─ 木と木構造
1-10 二分木を使って式を表現する
■第 2 章 みつける ─ 探索のアルゴリズム
2-1 たくさんのものから探そう! ─ 探索
2-2 チャレンジ! ユーザのデータをしまうプログラム
2-3 端から探そう ─ 線形探索法
2-4 アルゴリズムの評価はおおざっぱに ─ O 記法
【コラム】関数
2-5 チャレンジ! 線形探索法のプログラム
2-6 探しものは前に? それとも後ろに? ─ 二分探索法
2-7 チャレンジ! 最悪と最良のケースにおける計算量を求める
2-8 一撃で見つける ─ ハッシュ法
2-9 ハッシュ値が衝突したらどうする?
2-10 チャレンジ! ハッシュ法でデータを探索するプログラム
■第 3 章 ならべる ─ ソートのアルゴリズム
3-1 ならべてみよう! ─ ソート
3-2 チャレンジ! ソートのプログラム
3-3 列のどこに入れる? ─ 挿入ソート
3-4 挿入ソートの計算量、最良のケース
【コラム】番兵
3-5 挿入ソートの計算量、最悪のケース
3-6 最強はどれだ? ─ 選択ソート
3-7 選択ソートの計算量
3-8 ソート済みデータが浮かんでくる? ─ バブルソート
3-9 データを振り分ける ─ クイックソート
3-10 クイックソートの計算量、最良と最悪のケース
3-11 クイックソートの手順
3-12 安定なソートアルゴリズム
3-13 一見当たり前でも高性能 ─ マージソート
3-14 マージソートの手順
3-15 マージソートの計算量
3-16 マージソートの領域計算量
■第 4 章 かくす ─ 暗号とセキュリティ
4-1 何を知られると解読されてしまうのか? ─ 暗号の基礎
4-2 鍵をどうやって渡す? ─ 共通鍵方式
4-3 相手に渡した鍵は知られても大丈夫 ─ 公開鍵方式
4-4 本当に本人? ─ 認証
4-5 チャレンジ! 公開鍵方式を体験
■第 5 章 かんがえる? ─ 人工知能 (AI)
5-1 モデルは神経細胞 ─ ディープラーニング
5-2 チャレンジ! ニューラルネットワークにおける計算
5-3 どれとどれが仲間? ─ クラスタリング
付録 A Python のインストール
付録 B エラー対処法
技書の森解説
動物たちの会話とアクションを眺めながら、データ構造とアルゴリズムの基本を身につけていく入門書です。『アルゴリズムがわかる図鑑』は松浦健一郎氏と司ゆき氏の共著で、技術評論社の学習図鑑シリーズ「まなびのずかん」の 1 冊として 2022 年 1 月に刊行されました (B5 判・電子版は 2021 年 12 月配信) 。版元が対象に掲げるのは「アルゴリズムについて基本から学びたいと考えている初学者」で、その幅は社会人から小学校高学年までと明記されています。両氏は『 C 言語〈完全〉入門』『はじめての Python 』『確かな力が身につく PHP 「超」入門』など数多くのプログラミング入門書を共著してきたコンビで、本書もコードを書き始めて間もない人が最初に手に取る 1 冊として設計されています。
動詞で組まれた全 5 章の構成と Python 実習
章立ては「しまう」「みつける」「ならべる」「かくす」「かんがえる?」という動詞で組まれており、順にデータ構造 (スタック、キュー、配列、連結リスト、木構造) 、探索 (線形探索法、二分探索法、ハッシュ法) 、ソート (挿入ソート、選択ソート、バブルソート、クイックソート、マージソート) 、暗号とセキュリティ (共通鍵方式、公開鍵方式、認証) 、人工知能 (ディープラーニング、クラスタリング) を扱います。各所に「チャレンジ!」と題した Python 実習が挟まれ、付録には Python のインストール手順とエラー対処法が付くため、環境構築でつまずきやすい独習者でも手を動かしながら読み進められます。
計算量という物差しをどう導入するか
この本の設計で光るのは、計算量 という物差しの導入のしかたです。第 1 章の段階で、使うデータ構造しだいで答えを出す手間が変わることをまず見せ、第 2 章で O 記法を「アルゴリズムの評価はおおざっぱに」という切り口から導入します。以降はソートの各アルゴリズムで最良と最悪のケースの計算量を繰り返し確かめる構成で、マージソートでは領域計算量まで踏み込みます。アルゴリズム学習の本丸は個々の手順の暗記ではなく、同じ答えにたどり着く手順どうしを比べる物差しを持つことにあり、図鑑の体裁を取りながらこの軸を外していない点が、絵をただ眺めて終わる本と一線を画すところです。
翔泳社『アルゴリズム図鑑』との違いと使い分け
書名がよく似た本に翔泳社の『アルゴリズム図鑑 絵で見てわかる 26 のアルゴリズム』 (石田保輝・宮崎修一 著、 2017 年。 2023 年に 33 のアルゴリズムへ増補改訂) がありますが、別の書籍です。使い分けの軸は手の動かし方で、本書は解説とセットの Python 実習でアルゴリズムを実際に動かし、計算量の違いを自分のパソコンで確かめる過程までを学習体験に含めています。図解で直感を作るだけでなく、そのままプログラミングの練習につなげたい読者には本書が合います。
向いている読者・物足りない読者
一方で、グラフ探索や動的計画法、正当性の証明といった発展的な話題は目次に現れず、競技プログラミングの対策や情報系学部のアルゴリズム講義の教科書として使うには物足りません。すでに計算量の感覚が身についている中級者にとっても易しすぎるでしょう。本書はあくまで、本格的な教科書 へ進む前に「アルゴリズムを比べて選ぶ」という考え方の土台を作るための本です。
逆に、プログラミングを始めたばかりでアルゴリズムという言葉に身構えてしまう人、 Python の文法は覚えたが次に何を書けばいいか分からない人、子どもと一緒に計算機科学の入口を覗きたい人には、絵で直感を作ってからコードで確かめるという本書の往復が効きます。読み終える頃には、データの持ち方と手順を選ぶ際に手間を見積もる習慣、つまり O 記法で考えるための最初の足場ができているはずです。
言及 Qiita 記事 (5 件)
アルゴリズムとは何か!? ~ 文系理系問わず楽しめる精選 6 問 ~
♡ 2541アルゴリズム, 機械学習, DeepLearning, 競技プログラミング, 新人プログラマ応援実生活に学ぶアルゴリズム【最終回:1000 個の六角形ゼリーをたった 45 回の切断で作る方法、そしてアルゴリズムを学ぶ意義】
♡ 141アルゴリズム, AtCoder, 数学, 競技プログラミング【読書の夏?】各分野のおすすめ技術書を75冊まとめてみた
♡ 121AWS, Security, 初心者, 技術書, AIブックマークしてあった、データサイエンスなどの記事約1年分のリンク集(2018年5月ごろまで)
♡ 39Python, 機械学習, AI, 分析, データサイエンス【アンプラグド】おままごとで学ぶデータ構造|小学生から大人まで!
♡ 4アルゴリズム, プログラミング教育, データ構造, プログラミング初心者, アンプラグド
この本に興味がある方におすすめ
この本に関連
松浦 健一郎 の他の書籍
関連記事
アルゴリズム本ガイド - 競プロだけじゃない、実務に活きる選び方
アルゴリズム本の 3 タイプと、実務でアルゴリズムの知識が活きる場面、数学が苦手な人向けの学習ルートを紹介します。
機械学習 / ディープラーニング本ガイド - エンジニアが読むべき AI 技術書の選び方
機械学習の基礎から実践まで学べる技術書の選び方を紹介。「Python ではじめる機械学習」などのハンズオン本を軸に、数学が苦手な人向けの学習ルート、ディープラーニング本への進み方、ML 本の賞味期限の見極め方を解説します。
Python 本の選び方 - 独学の最初の 1 冊から実務品質まで
Python 本の選び方を「動機」から逆算して整理。プログラミング未経験の最初の 1 冊、業務自動化に直結する本、型ヒントとコード品質で実務水準へ進む本まで、2026 年 8 月時点の定番を独学ルートに沿って解説します。