ForNext
Only Do What Only You Can Do
柴田望洋『明解 Javaによるアルゴリズムとデータ構造』
1. 基本的なアルゴリズム
- 三値の最大値
- 条件判定と分岐
- フローチャート(流れ図)の記号
- 1からnまでの整数の和を求める
- 正の値の読込み
- 多重ループ
2. 基本的なデータ構造
- 配列
- 配列の要素の最大値を求める
- 配列の要素の並びを逆転する
- 二つの配列の比較
- 基数変換
- 素数の列挙
- 多次元配列
- 年内の経過日数の計算
- 多次元配列の内部
- クラスとは
- クラスの配列
3. 探索
- 探索とキー
- 配列からの探索
- 線形探索
- 番兵法
- 2分探索
- 計算量
- Arrays.binarySearchによる2分探索
- ソート済み配列の操作
- ハッシュ法
- 衝突
- チェイン法
- オープンアドレス法
4. スタックとキュー
- スタックとは
- スタックの実現
- キューとは
- 配列によるキューの実現
- リングバッファによるキューの実現
5. 再帰的アルゴリズム
- 再帰とは
- 階乗値
- ユークリッドの互除法
- 再帰アルゴリズムの解析
- 再帰アルゴリズムの非再帰的表現
- ハノイの塔
- 8王妃問題とは
- 王妃の配置
- 分枝操作
- 限定操作
- 8王妃問題のための分枝限定操作
6. ソート
- ソートとは
- 単純交換ソート(バブルソート)
- 単純選択ソート
- 単純挿入ソート
- 単純挿入ソートの特徴
- シェルソート
- クイックソートの概略
- 分割の手順
- クイックソート
- 非再帰的クイックソート
- 枢軸の選択
- 時間計算量
- ソート済み配列のマージ
- マージソート
- Arrays.sortによるクイックソートとマージソート
- ヒープ
- ヒープソート
- 根を削除したヒープの再構築
- ヒープソートへの拡張
- 配列のヒープ化
- ヒープソートの時間計算量
- 度数ソート
7. 集合
- 集合と要素
- 部分集合と真部分集合
- 集合の演算
- 配列による集合
8. 文字列探索
- 文字列探索
- 力まかせ法(単純法)
- String.indexOfによる文字列探索
- KMP法
- Boyer-Moore法
9. 線形リスト
- 線形リスト
- 線形リストの実現
- ポインタによる線形リスト
- 線形リストを利用するプログラム
- カーソルによる線形リスト
- 配列内の空き要素
- フリーリスト
- 循環リスト
- 重連結リスト
- 循環・重連結リスト
- 循環・重連結リストの実現
- 循環・重連結リストを利用するプログラム
10. 木構造
- 木とは
- 順序木と無順序木
- 順序木の探索
- 2分木
- 完全2分木
- 2分探索木
- 2分探索木の実現
- 2分探索木を利用するプログラム