contents memorandum はてな

目次とメモを置いとく場

『新・明解Javaで学ぶアルゴリズムとデータ構造』(柴田望洋 ソフトバンククリエイティブ 2017//2005)

著者:柴田 望洋[しばた・ぼうよう](1963-) 技術書。
装丁:bookwall
備考:同じ著者によるアルゴリズム解説本は、C言語JavaPythonの三種類がある。
備考: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]