ISBN 9784627872615

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

Pythonで学ぶ アルゴリズムとデータ構造
著者
藤原 暁宏
出版社
森北出版
刊行
2023-03

概要

Pythonを使いアルゴリズムとデータ構造を基礎から体系的に習得する

想定読者

Pythonの基本文法を習得済みで、計算量・データ構造・探索・ソートの仕組みを体系的に学びたい学生・入門者

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

  • すでにアルゴリズム教科書を1冊通読済みで競技プログラミング中級以上の力をつけたい人には内容が基礎的すぎる
  • Python以外の言語(Java・C++など)でのコード例を求めている読者には対応していない
  • 業務での大規模システム設計や分散アルゴリズムを扱う実践書として期待する人には範囲が限定的

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

  • スタック・キュー・木・グラフなど主要データ構造の概念と、Pythonでの実装方法
  • 線形探索・二分探索・ハッシュ探索など探索アルゴリズムの計算量と使い分け
  • バブルソート・クイックソート・マージソートなど代表的なソートアルゴリズムの動作原理と効率比較
  • 分割統治法・動的計画法・貪欲法などアルゴリズム設計手法の基礎を実装レベルで理解する
  • KMPアルゴリズム等の文字列照合手法の動作原理
  • P/NP問題を含むアルゴリズムの限界についての入門的認識

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

  • 第 1 章 アルゴリズムの基礎 — 計算量(O記法)の考え方を最初に押さえる章。以降全章の土台になるため、丁寧に読む価値がある
  • 第 2 章 アルゴリズムの基本データ構造 — スタック・キュー・連結リストを実装しながら学ぶ。抽象的な概念が手を動かすことで定着する
  • 第 3 章 アルゴリズムにおける基本概念
  • 第 4 章 データの探索 — 線形探索・二分探索・ハッシュ表を扱う。実務での検索処理設計に直結しやすい章
  • 第 5 章 ソートアルゴリズム — 比較ソートから基数ソートまで網羅。各手法の計算量を横断比較できる
  • 第 6 章 アルゴリズムの設計手法1 — 分割統治法・動的計画法を扱う。競技プログラミングや最適化問題への橋渡しになる
  • 第 7 章 アルゴリズムの設計手法2 — 貪欲法等を扱う。設計手法1と合わせて読むと考え方の違いが対比できる
  • 第 8 章 グラフアルゴリズム — BFS・DFS・最短経路問題を扱う。ネットワーク分析・経路探索タスクへの応用につながる
  • 第 9 章 文字列照合アルゴリズム — KMP・Boyer-Moore系の文法。検索エンジン・テキスト処理に関心がある人に特に有益
  • 第 10 章 アルゴリズムの限界 — P/NP問題と計算不能性の入門。理論的な視野を広げる章で、じっくり読む価値がある

ハイライト

  • Pythonの基礎知識さえあれば理解できるように記述されていて,初心者でも安心して読み進められます。少しレベルの高い内容やPython特有の注意点がコラムとして紹介されており,さらなる学習への足掛かりとすることもできます。(本書の対象レベルと学習ステップの設計方針が端的に示されている箇所)
  • 多くの学校で採用されている人気のテキスト『情報工学レクチャーシリーズ アルゴリズムとデータ構造(第2版)』をもとに,Pythonならではの要素を盛り込んで執筆されました。独習用の入門書としても,大学や高専の教科書としても最適な1冊です。(実績ある原著をベースにしている点と、教科書・独習両用途に対応している点を示す)

編集メモ

入力データにQiita言及件数・楽天ランキング情報なし。書誌情報のみで評価。大学・高専の教科書採用実績がある点は品質の傍証だが、外部シグナルが不足するためsupplementaryとする

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

  • Pythonの基本文法(変数・制御構造・関数・リスト操作)を一通り書ける状態
  • 高校数学レベルの対数・指数の概念(計算量のO記法理解に使用)

学習のコツ

  • 第1章の計算量(O記法)を自分の言葉で説明できるようになってから第2章以降へ進むと、各アルゴリズムの効率比較の文脈が途切れない
  • 第4・5章は章末の練習問題をPython REPLで実際に動かして計測することで、理論値と実測値のズレを体感できる
  • 第6・7章(設計手法)は抽象度が上がるため、例題コードを写経してから読み返すと理解が定着しやすい
  • コラムはPython固有の落とし穴や発展的内容が凝縮されているため、通読後に改めて読み直すと学習を深められる
  • 第10章は理論寄りで初読時に難解に感じる場合は後回しにして、他章を習得してから戻ると整理しやすい
出版社による内容紹介

Pythonプログラミングにおけるアルゴリズムとデータ構造のポイントを,身近な具体例とともにわかりやすく解説. スタックやキューなどデータ構造の基本から,探索やソート,文字列照合などに用いる代表的なアルゴリズムの設計手法まで,プログラムの高速化・効率化のための必須知識を学べます. Pythonの基礎知識さえあれば理解できるように記述されていて,初心者でも安心して読み進められます. 少しレベルの高い内容やPython特有の注意点がコラムとして紹介されており,さらなる学習への足掛かりとすることもできます. 本書は,多くの学校で採用されている人気のテキスト『情報工学レクチャーシリーズ アルゴリズムとデータ構造(第2版)』をもとに,Pythonならではの要素を盛り込んで執筆されました. 独習用の入門書としても,大学や高専の教科書としても最適な1冊です. 第1章 アルゴリズムの基礎 第2章 アルゴリズムの基本データ構造 第3章 アルゴリズムにおける基本概念 第4章 データの探索 第5章 ソートアルゴリズム 第6章 アルゴリズムの設計手法1 第7章 アルゴリズムの設計手法2 第8章 グラフアルゴリズム 第9章 文字列照合アルゴリズム 第10章 アルゴリズムの限界

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

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

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