ISBN 9784815606008

新・明解Javaで学ぶアルゴリズムとデータ構造 第2版

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

概要

Javaでアルゴリズムとデータ構造を基礎から体系的に実装する

想定読者

初級レベルのJavaプログラマ、またはアルゴリズムとデータ構造をゼロから習得したい学習者

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

  • Javaを既に中〜上級レベルで使いこなし、設計パターンや並行処理といった実務的な課題に取り組んでいるエンジニアには既知の内容が多い
  • 言語を問わずアルゴリズムの理論的な計算量解析や証明を深く学びたい読者には、Javaコードを前提とした解説構成が合わない場合がある
  • 競技プログラミングや面接対策として高速な実装テクニックを身につけたい読者には、本書の入門的な構成では演習量と難易度が不足する

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

  • スタック・キュー・線形リストなど基本的なデータ構造をJavaで実装し、動作原理を説明できる
  • 線形探索・二分探索など主要な探索アルゴリズムの計算コストの違いを理解して使い分けられる
  • バブルソート・クイックソートなど代表的なソートアルゴリズムをJavaコードで実装できる
  • 再帰的アルゴリズムの設計手法を習得し、木構造探索や分割統治の問題に適用できる
  • 二分木・木構造を活用したデータ管理の手法を把握し、実装を通じて構造への直感を身につけられる
  • 文字列探索アルゴリズムの仕組みを理解し、素朴な実装と効率的な実装の差を把握できる

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

  • 第 1 章 基本的なアルゴリズム — 繰り返し・条件分岐などのアルゴリズム設計の基礎概念を整理する章。後続章の土台となるため丁寧に通読する
  • 第 2 章 基本的なデータ構造 — 配列とそれを操作する基本パターンを扱う。3〜10章の実装で繰り返し使う概念のため確実に定着させる
  • 第 3 章 探索 — 線形探索・二分探索の計算量の違いを実装を通じて体感できる章。実務での選択判断の直接の根拠になる
  • 第 4 章 スタックとキュー — LIFO/FIFOの概念を自前実装するため、後続の再帰・木構造の理解に直結する重要章
  • 第 5 章 再帰的アルゴリズム — 分割統治・木の走査など多くのアルゴリズムの基礎。4章のスタック概念と対比しながら読むと理解が深まる
  • 第 6 章 ソート — バブルソートからクイックソートまで複数の手法を比較できる構成。計算量の感覚を掴む上で最も学習価値が高い章
  • 第 7 章 集合 — 和集合・積集合・差集合の実装を通じて集合演算の基礎を習得する
  • 第 8 章 文字列探索 — 素朴な方法と効率的なパターンマッチングの違いを実装で学ぶ章
  • 第 9 章 線形リスト — ポインタ相当の概念を参照型オブジェクトで実装する章。動的なデータ管理の基礎となる
  • 第 10 章 木構造 — 二分木・二分探索木を扱う本書の集大成章。5章の再帰と9章の線形リストの知識を統合した実装に取り組む

ハイライト

  • すべてのJavaプログラマに贈る! アルゴリズムとデータ構造入門書の最高峰!! 初級レベルのJavaプログラマを対象に、スタックやキュー、二分木などのデータ構造をはじめとして、探索、ソートなどの、アルゴリズムの基礎について解説しています。(本書の対象読者と扱う内容の全体像が端的に示されている冒頭部分)

編集メモ

入力に Qiita 言及記事・Rakuten ランキング情報が含まれておらず(qiita_article_count=0 / total_likes=0)、外部シグナルから導出できないため supplementary とする。著者の柴田望洋氏による「新・明解」シリーズは複数言語版が長年刊行されている定番教育書シリーズだが、定量的な外部シグナルの裏付けが取れない段階での判定

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

  • Javaの変数・配列・クラス・メソッドの基本的な書き方を理解していること(Java入門書を一冊読み終えた段階が目安)
  • プログラムを手元でコンパイル・実行できる Java 開発環境(JDK と任意のエディタまたは IDE)

学習のコツ

  • 各章のコードは写経するだけでなく、変数値をトレース表に書き起こしながら追うとアルゴリズムの動きが体感できる。特にソート・再帰章はこの方法が定着を速める
  • 5章(再帰)は一読で完全に理解しなくてよい。10章(木構造)まで進んだ後に5章に戻ると、再帰の使いどころが立体的に把握できる
  • ソート章(6章)は複数の実装を並べて比較するのに向いている。同じ入力データで各ソートを実行して処理ステップ数を手で数えると、計算量の違いが直感として定着する
  • Java 14 対応とされているが、基礎的なアルゴリズムの実装コードは現行の Java でもそのまま動作する。最新の JDK 環境で問題なく使える
出版社による内容紹介

すべてのJavaプログラマに贈る! アルゴリズムとデータ構造入門書の最高峰!! 初級レベルのJavaプログラマを対象に、 スタックやキュー、二分木などのデータ構造をはじめとして、探索、ソートなどの、アルゴリズムの基礎について解説しています。改訂にあたっては、本文とデザインを全面的に見直すとともに、プログラムを最新のJava(Java 14)に対応させています。 Java言語の初心者はもちろん、アルゴリズムとデータ構造をゼロから学びたい読者にとって最良の入門書です。 第1章 基本的なアルゴリズム 第2章 基本的なデータ構造 第3章 探索 第4章 スタックとキュー 第5章 再帰的アルゴリズム 第6章 ソート 第7章 集合 第8章 文字列探索 第9章 線形リスト 第10章 木構造

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

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

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