Java データ構造とアルゴリズム 基礎講座
2008年12月26日発売
長尾和彦 著
A5判/224ページ
定価2,709円(本体2,580円)
ISBN 978-4-7741-3697-4
この本の概要
アルゴリズムとデータ構造は,ソフトウエア技術者にとって,重要かつ必至な知識・技術を扱う科目であるが,既存の書籍は難解かつページ数が膨大,また例題が少ないもしくは有っても回答がないなど,学校の教科書または独学しようとしている人が使用するにはつらいものが多い。そこで,Javaの文法をある程度理解している人向けに,Javaのデータ構造とアルゴリズムを,頭から順に読み進めていき,節ごとに適切な課題をこなすことで,独学も可能な教科書的立場の書籍を提供します。課題は,Eclipseのプロジェクトの形式でダウンロードしてもらう形で提供予定。
こんな方におすすめ
- Javaを勉強されたい方
- Javaのデータ構造,アルゴリズムについて勉強されたい方
第1章 アルゴリズムと計算量
1.1 アルゴリズムとは
- 1.1.1 鶴亀算
- 1.1.2 問題の認識と解決
- 1.1.3 アルゴリズムの構造とフローチャート
- 1.1.4 アルゴリズムの停止性
1.2 アルゴリズムの性能評価と計算量
- 1.2.1 アルゴリズムの評価基準
1.3 計算量の評価
- 1.3.1 最悪の場合の実行時間
- 1.3.2 計算量の漸近的な評価
- 1.3.3 O記法
- 1.3.4 計算量の和・積の公式
- まとめ・演習問題
第2章 アルゴリズムの設計手法
2.1 力ずく法
- 2.1.1 組み合わせの作り方
2.2 欲張り法
- 2.3 分割統治法
- 2.3.1 機能的な分割の方法
- 2.3.2 再帰的定義
2.4 動的計画法
- 2.4.1 分割統治法がうまくいかない例
- まとめ・演習問題
第3章 配列
3.1 配列
- 3.1.1 配列の要素
- 3.1.2 配列の長さ
- 3.1.3 データの終端の表現
- 3.1.4 配列へのデータの挿入
- 3.1.5 配列のデータの削除
- 3.1.6 配列の複製
3.2 多次元配列
- 3.2.1 多次元配列
- まとめ・演習問題
第4章 スタックとキュー
4.1 スタック
- 4.1.1 スタックの実装
4.2 キュー
- 4.2.1 キューの実装
- まとめ・演習問題
第5章 リスト
5.1 連結リスト
- 5.1.1 データの挿入と削除
5.2 ポインタによるリストの実装
- 5.2.1 リストセルクラス:Cell
- 5.2.2 線形リストクラス:LinkedListCell
- 5.2.3 イテレータ
5.3 カーソルによるリストの実装
- 5.3.1 カーソルリストクラス:ListCursor
- 5.4.1 双方向リストの実装
- まとめ・演習問題
- 6.1.1 木の定義
- 6.1.2 順序木と無順序木
- 6.1.3 順序木の探索
- 6.2.1 2分木
- 6.2.2 完全2分木
- 6.2.3 2分木の実装
- 6.3.1 2分探索木の実装
- 6.3.2 2分探索木の計算量
- まとめ・演習問題
- 7.1.1 グラフの定義
- 7.1.2 グラフの用語
- 7.2.1 ノードクラス:Node
- 7.3.1 コンストラクタ
- 7.3.2 状態空間の定義:makeStateSpace
- 7.3.3 幅優先探索:breadthFirst
- 7.3.4 深さ優先探索:depthFirst
- 7.3.5 分岐限定法:branchAndBound
- 7.3.6 山登り法:hillClimbing
- 7.3.7 最良優先探索法:bestFirst
- 7.3.8 A(A∗)アルゴリズム
- まとめ・演習問題
- 8.1.1 番兵による線形検索の改良
- 8.3.1 ハッシュ法とは
- 8.3.2 チェイン法
- 8.3.3 オープンアドレス法
- まとめ・演習問題
- 9.1.1 内部ソートと外部ソート
- 9.1.2 アニメーションによるソートの表示―――Sorting
- 9.5.1 ギャップの選択
- 9.7.1 ソート済み配列のマージ
- 9.7.2 マージソートのアルゴリズム
- 9.7.3 プログラムと実行結果
- 9.8.1 ヒープ
- 9.8.2 ヒープソート
- 9.8.3 ヒープソートの計算量
- まとめ・演習問題
- A.1 Eclipseの入手
- A.2 Eclipseの日本語化
- A.3 Eclipseの起動
- B.1.1 プロジェクトの作成
- B.1.2 テストファースト
- 等差数列・等比数列
- 対数(log)の公式
- 指数の公式
- D.1.1 例:2分検索
- D.1.2 例:階乗の計算
- D.1.3 例:フィボナッチ数列
- D.1.4 クイックソート
- D.1.5 その他の漸化式1
- D.1.6 その他の漸化式2
- E.1 プロジェクトの説明
- E.2 コッホ曲線
- E.3 樹木曲線
- E.4 ヒルベルト曲線
- E.5 シェルピンスキー曲線
5.4 双方向リスト
第6章 木
6.1 木とは
6.2 2分木
6.3 2分探索木
第7章 グラフ
7.1 グラフとは
7.2 グラフの実装と探索
7.3 状態空間の探索
第8章 データの検索
8.1 線形検索
8.2 2分検索
8.3 ハッシュ法
第9章 ソート
9.1 ソートとは
9.2 単純交換ソート(バブルソート)
9.3 単純選択ソート
9.4 単純挿入ソート
9.5 シェルソート
9.6 クイックソート
9.7 マージソート
9.8 ヒープソート
付録A Eclipseのインストール
付録B Eclipseによるプログラミング入門
B.1 初めてのプログラミング
付録C アルゴリズム公式集
付録D 漸化式の解き方
D.1 漸化式の解き方
付録E フラクタル
-
スタートアップJava
Javaプログラミングの初心者向けに『スタートアップJava』が刊行されたのは2004年のことです。その後,Javaのバージョンは6.0になり,統合開発環境のEclipseも3.3になり...
-
[Eclipseによる体験学習]Javaではじめるアルゴリズム入門
はじめてプログラミングを学習する人にとって,アルゴリズムと言語仕様を同時に理解することはかなり難しいことです。本書は,Java言語と統合環境の「Eclipse」使って,...
