著者:柴田 望洋[しばた・ぼうよう](1963-) 技術書。
装丁:bookwall
備考:同じ著者によるアルゴリズム解説本は、C言語・Java・Pythonの三種類がある。
備考:Javaに限っても、タイトルからは改訂履歴が分かりにくい。
『無印 [第1版]』(2005年)
『明解 [第1版]』(2007年)
『新・明解[第1版]』(2017年)
『新・明解[第2版]』(2020年)
新・明解 Javaで学ぶアルゴリズムとデータ構造 | SBクリエイティブ
BohYoh.com【著書】新・明解Javaで学ぶアルゴリズムとデータ構造
・『新・明解[第一版]』(2017年)
・『新・明解[第二版]』(2020年)
【目次】
はじめに [iii]
本書の構成 [iv]
目次 [v-ix]
第1章 基本的なアルゴリズム
1-1 アルゴリズムとは 002
三値の最大値
条件判定と分岐
フローチャート(流れ図)の記号
1-2 繰返し 014
1からnまでの整数の和を求める
正の値の読込み
多重ループ
第2章 基本的なデータ構造
2-1 配列 028
データ構造
配列
配列の要素の最大値を求める
配列の要素の並びを反転する
二つの配列の比較
基数変換
素数の列挙
2-2 多次元配列 058
多次元配列
年内の経過日数の計算
多次元配列の内部
2-3 クラス 066
クラスとは
クラスの配列
第3章 探索
3-1 探索アルゴリズム 074
探索とキー
配列からの探索
3-2 線形探索 076
線形探索
番兵法
3-3 2分探索 082
2分探索
計算量
Arrays.binarySearchによる2分探索
3-4 ハッシュ法 100
ソートずみ配列の操作
ハッシュ法
衝突
チェイン法
オープンアドレス法
第4章 スタックとキュー
4-1 スタック 124
スタックとは
スタックの実現
4-2 キュー 134
キューとは
配列によるキューの実現
リングバッファによるキューの実現
第5章 再帰的アルゴリズム
5-1 再帰の基本 152
再帰とは
階乗値
ユークリッドの互除法
5-2 再帰アルゴリズムの解析 158
再帰アルゴリズムの解析
再帰アルゴリズムの非再帰的表現
5-3 ハノイの塔 164
ハノイの塔
5-4 8王妃問題 168
8王妃問題とは
王妃の配置
分枝操作
限定操作
8王妃問題のための分枝限定操作
第6章 ソート
6-1 ソートとは 182
ソートとは
6-2 単純交換ソート(バブルソート) 184
単純交換ソート(バブルソート)
6-3 単純選択ソート 192
単純選択ソート
6-4 単純挿入ソート 194
単純挿入ソート
6-5 シェルソート 198
単純挿入ソートの特徴
シェルソート
6-6 クイックソート 204
クイックソートの概略
分割の手順
クイックソート
非再帰的クイックソート
枢軸の選択
時間計算量
6-7 マージソート 220
ソートずみ配列のマージ
マージソート
Arrays.sortによるクイックソートとマージソート
6-8 ヒープソート 230
ヒープ
ヒープソート
根を削除したヒープの再構築
ヒープソートへの拡張
配列のヒープ化
ヒープソートの時間計算量
6-9 度数ソート 240
度数ソート
第7章 集合
7-1 集合とは 248
集合と要素
部分集合と真部分集合
集合の演算
7-2 配列による集合 252
配列による集合
第8章 文字列探索
8-1 力まかせ法 264
文字列探索
力まかせ法(単純法)
String.indexOfによる文字列探索
8-2 KMP法〔Knuth-Morris-Pratt法〕 270
KMP法
8-3 Boyer-Moore法 274
Boyer-Moore法
第9章 線形リスト
9-1 線形リストとは 280
線形リスト
線形リストの実現
9-2 ポインタによる線形リスト 282
ポインタによる線形リスト
線形リストを利用するプログラム
9-3 カーソルによる線形リスト 300
カーソルによる線形リスト
配列内の空き要素
フリーリスト
9-4 循環・重連結リスト 310
循環リスト
重連結リスト
循環・重連結リスト
循環・重連結リストの実現
循環・重連結リストを利用するプログラム
第10章 木構造
10-1 木構造 328
木とは
順序木と無順序木
順序木の探索
10-2 2分木と2分探索木 332
2分木
完全2分木
2分探索木
2分探索木の実現
2分探索木を利用するプログラム
おわりに [355]
参考文献 [357-358]
索引 [359-368]
謝辞 [369]
著者紹介 [370]