ISBN 9784815603199

新・明解Pythonで学ぶアルゴリズムとデータ構造

新・明解Pythonで学ぶアルゴリズムとデータ構造
著者
柴田 望洋
刊行
2020-01

概要

Pythonで実装しながらアルゴリズムとデータ構造の基礎を体得する

想定読者

Pythonの基礎文法を習得済みで、アルゴリズムとデータ構造を体系的に学びたいプログラミング初〜中級者。大学の情報系授業の副読本として、あるいは独学でコーディング力を底上げしたい社会人エンジニアにも向いている

こんな人には向いていない

  • すでにアルゴリズムの主要概念(ソート・探索・再帰)を実装経験済みのエンジニアには、新しい発見は少ない
  • 競技プログラミングの高速化や高度な問題解法を求める読者には内容が基礎寄りすぎる
  • 数学的証明や計算量解析を厳密に学びたい読者には理論的記述が薄い

読了後にできるようになること

  • スタック・キュー・線形リスト・2分探索木といった主要データ構造をPythonで実装できる
  • 線形探索・2分探索など複数の探索アルゴリズムを状況に応じて選択・実装できる
  • バブルソート・クイックソート・マージソートなど代表的なソートアルゴリズムの動作原理を図解と実装で理解できる
  • 再帰的アルゴリズムの設計パターンを習得し、フィボナッチ・ハノイの塔等の問題に応用できる
  • 文字列探索アルゴリズム(KMP法等)の仕組みを理解できる
  • 213点の図表と136編の動作するサンプルコードを通じてコーディング力を体系的に強化できる

本書のキー概念(章解説)

  • 第 1 章 基本的なアルゴリズム — 算法の考え方を最初に定義する導入章。ここを丁寧に読むと以降の章の見通しが良くなる
  • 第 2 章 データ構造と配列 — 配列操作の基礎。Pythonのリストとの対応を意識しながら読むと理解が深まる
  • 第 3 章 探索 — 線形探索と2分探索の比較が実務的な判断軸になる
  • 第 4 章 スタックとキュー — 後続の再帰・木構造の理解に直結する重要章
  • 第 5 章 再帰的アルゴリズム — 初学者がつまずきやすいが、図解が多く段階的に理解できる構成
  • 第 6 章 ソート — 複数のソートアルゴリズムを実装・比較しながら計算量の感覚を養う
  • 第 7 章 文字列探索 — KMP法など実用的な文字列処理を扱う。実務での応用が見えやすい章
  • 第 8 章 線形リスト — 連結リストの実装を通じてポインタ的思考を養える
  • 第 9 章 木構造 — 2分探索木を締めくくりとして扱う。前章までの知識が統合される

ハイライト

  • 解説にあたっては、難しい理論や概念を視覚的なイメージで理解できるように、213点もの図表を提示しています。本書に示す136編のプログラムは、単なるサンプルではなく、実際に動作するものばかりです。(図表の豊富さと動作する実装コードの量が本書の差別化ポイントを端的に示している)

外部からの言及

  • 本書を教材に各章を進める学習日記形式の記事が複数投稿されており、章ごとの内容に沿って実際にコードを書き進める使い方をしている読者が見受けられる。Shellsortの解説でも参考文献として引用されている(qiita)

編集メモ

Qiita言及は確認できた範囲で数件・累計likes低水準(確認分で5件未満)。楽天ランキング情報なし。柴田望洋シリーズは累計販売実績が高い定番シリーズだが、本書単体のオンライン言及量はessential判定に届かない

読む前に押さえておきたいこと

  • Pythonの基礎文法(変数・条件分岐・ループ・関数定義)が書ける状態
  • 関数の戻り値と引数の仕組みを理解していること(再帰章で必須)

学習のコツ

  • 1章から順に読む構成だが、4章(スタック・キュー)を先に読んでから5章(再帰)に進むと再帰の戻り値のイメージが掴みやすい
  • 136編のプログラムは写経だけでなく、コード変形(入力値を変える・条件を変える)を加えると定着が速い
  • 6章ソートは複数のアルゴリズムを実装する章のため、各実装の計算量(O記法)を手元にメモしながら比較対照すると知識が整理される
  • 9章木構造は前の章(線形リスト・再帰)の知識が統合される章なので、途中で詰まったら4〜8章を振り返ると良い
出版社による内容紹介

最高のアルゴリズム入門書 本書は、Pythonで実装した豊富なプログラム例を通じて、アルゴリズムとデータ構造の基礎を身につけるためのテキストです。 基本的なアルゴリズムとデータ構造に始まって、目的とするデータを見つける探索、データの並びを一定の順序で並びかえるソート、そして、スタック・キュー・再帰的アルゴリズム・線形リスト・2分探索木などを学習します。 解説にあたっては、難しい理論や概念を視覚的なイメージで理解できるように、213点もの図表を提示しています。本書に示す136編のプログラムは、単なるサンプルではなく、実際に動作するものばかりです。すべてのプログラムを読破すれば、かなりのコーディング力が身につくはずです。 第1章 基本的なアルゴリズム 第2章 データ構造と配列 第3章 探索 第4章 スタックとキュー 第5章 再帰的アルゴリズム 第6章 ソート 第7章 文字列探索 第8章 線形リスト 第9章 木構造

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。