【本書のポイント】
・解説とイラストがセットで理解しやすい!
・多彩なアルゴリズムの特徴と考え方がわかる!
・機械学習や高度なアルゴリズムについても解説!
・キーワードから知りたい項目を調べやすい!
・初心者からプログラマまで知っておきたい知識を収録!
【こんな方におすすめ】
・アルゴリズムの基本を身につけたい人
・知識を広げてステップアップしたい人
・適切なアルゴリズムを選べるようになりたい人
・速くて正確なプログラムを書けるようになりたい人
【内容紹介】
効率のよいプログラムを作成するには、
場面に合った適切なアルゴリズムを選ぶ必要があります。
同じ結果を得るにしても、どのアルゴリズムを選択するかで
処理速度が大きく変化するからです。
しかし、「違いがよく分からない」「複雑で難しそう」といった
苦手意識をアルゴリズムに抱いている人も多いでしょう。
そこで、本書では見開きで
1つのテーマを取り上げ、
図解を交えて解説しています。
最初から順に読んで
体系的な知識を得るのはもちろん、
気になるテーマやキーワードに
注目しながら読むなど、
状況に合わせて活用してください。
【目次】
第1章 アルゴリズムの基本~アルゴリズムとは何か?
第2章 データの保管のしかた~それぞれの構造と特徴~
第3章 データを並び替える~規則に沿って数字を整列させる~
第4章 データを探す~⽬的の値を速く探し出すには?~
第5章 機械学習で使われるアルゴリズム~AIを⽀える計算⼿法~
第6章 その他のアルゴリズム~⾼度に活⽤される応⽤事例~
この1冊で、データ構造の基本から押さえておくべきアルゴリズム、応用事例まで理解できます。(※紙の書籍と電子書籍でレイアウトが異なります)
解説とイラストがセットなので、文字だけでは想像しにくい技術がスッと頭に入ります。
体系的な学習はもちろん、知りたい項目を探して効率よく読むこともできます。
第1章 アルゴリズムの基本~アルゴリズムとは何か?~
1-1 速く正確な計算の手順
1-2 データを扱いやすくする
1-3 よいプログラムとは何か
1-4 アルゴリズムを比べる基準
1-5 実装する言語による違い
1-6 便利なアルゴリズムの集まり
1-7 アルゴリズムの権利
1-8 アルゴリズムの図示
1-9 紙に書く計算のアルゴリズム
1-10 素数を見つけ出す
1-11 共通する最大の約数を探す
1-12 パズルでアルゴリズムを学ぶ
1-13 ランダムな値を使って調べる
やってみよう|さまざまな関数での増え⽅を比較してみよう
第2章 データの保管のしかた~それぞれの構造と特徴~
2-1 整数の表現方法
2-2 データの単位
2-3 小数の表現方法
2-4 文字の表現方法
2-5 1つ1つに割り当てる
2-6 データを保管するサイズ
2-7 連続した領域に格納する
2-8 人がわかりやすいように表現する
2-9 データの位置を格納する
2-10 表形式のデータを格納する
2-11 単語や文章を格納する
2-12 複雑なデータ構造を表現する
2-13 一列に並べる形式
2-14 双方向につなげる形式
2-15 分岐した構造で保存する
2-16 条件を満たす木構造
2-17 探索に向いたデータ構造
2-18 バランスのよい木構造
2-19 順序のないデータを格納する
2-20 最後に格納したものから取り出す
2-21 保存した順番で取り出す形式
2-22 仮想メモリのページングアルゴリズム~
やってみよう|データを保管するのに必要なデータ量を計算してみよう
第3章 データを並び替える~規則に沿って数字を整列させる~
3-1 昇順、降順の並べ替え
3-2 同じ値の順番が保証される
3-3 最大値や最小値を選んで並べ替える
3-4 整列済みの配列に追加する
3-5 直前の要素と比べる
3-6 配列を双方向に入れ替える
3-7 交換と挿入を組み合わせて高速化
3-8 ヒープを作成しながら並べ替える
3-9 複数のデータを比較しながら統合
3-10 一般的に高速でよく用いられる
3-11 とりうる値に限りがある場合に有効
3-12 隙間を用意して並べ替え
3-13 ジョークとして使われるソート
3-14 どの手法を選ぶべきか
やってみよう|ソートのフローチャートを描いてみよう
第4章 データを探す~⽬的の値を速く探し出すには?~
4-1 複数のデータの中から条件にあうものを見つける
4-2 しらみつぶしに探索する
4-3 先頭から順に調べる
4-4 ソート済みのデータから探索する
4-5 近くにあるものを順に探索する
4-6 隣り合うものを順に探索する
4-7 階層を深く探索する
4-8 木構造の探索順による違い
4-9 逆方向からも探索する
4-10 始点と終点を変えて探索する
4-11 辺に注目して最短経路を探す
4-12 ノードに注目して最短経路を探す
4-13 経験則を活かして探索する
4-14 損害が最小になるものを求める
4-15 文章から文字列を検索する
4-16 工夫して文字列を検索する
4-17 特定のパターンに合致する文字列を検索
やってみよう|⾝近に使われている探索の⼿法を想像してみよう
第5章 機械学習で使われるアルゴリズム~AIを⽀える計算⼿法~
5-1 データから分類や予測を実行
5-2 正解データをもとに学習
5-3 データから特徴を抽出して分類
5-4 望ましい結果に報酬を与える
5-5 木構造で分類や回帰を実現
5-6 複数の決定木で多数決
5-7 分離するときの境界との間隔を最大化
5-8 0から1の範囲で確率的に予測
5-9 人間の脳を模倣し、信号のやりとりを数式化
5-10 階層を深くして学習させる
5-11 実在しないデータを生成できるAI
5-12 画像のノイズ除去や境界の強調を実現
5-13 処理中にランダムな選択をして実行
5-14 生物の進化をまねる
5-15 時間経過に応じてランダム性を変える
5-16 近くのものを強く学習する
5-17 高速に近似的な解を求める
5-18 大量のデータを分類する
5-19 データの次元を縮小して新たな指標で表現
やってみよう|⾝近に使われる AI の事例を調べてみよう
第6章 その他のアルゴリズム~⾼度に活⽤される応⽤事例~
6-1 小さな問題に分割して結果を記録
6-2 データの容量を減らす
6-3 繰り返しを圧縮
6-4 入力の誤りを検出
6-5 雑音やノイズを除去
6-6 暗号アルゴリズムによるセキュリティ強化
6-7 簡単な暗号とその解読
6-8 負荷が小さい暗号方式
6-9 安全に鍵を共有する
6-10 大きな数の素因数分解が困難であることを利用
6-11 短い鍵で安全性を確保する
6-12 SNSで使われるアルゴリズム
6-13 Googleのアルゴリズム
6-14 事前の情報なしに意思決定する
6-15 すべての都市を訪問するコストを最小化
6-16 詰める商品の価値を最大化
6-17 解けないアルゴリズム
6-18 解けたら100万ドル?
やってみよう|「恵⽅巻きの⽅⾓」を計算で求めてみよう
Q_P_ さん
2022-03-17
アルゴリズムとよく見聞きしますがよく知らなかったので読んでみました。多分、どういうものなのかある程度理解できたように思います。駆け足な説明だと思うのですが、そのため、専門用語が混じってくると難しく感じました。