アルゴリズムがわかる図鑑
書籍情報
発売日 : 2022年01月06日
著者/編集 : 松浦 健一郎/司 ゆき
出版社 : 技術評論社
発行形態 : 単行本
書籍説明
内容紹介
問題を解くための計算法、アルゴリズムに興味はあったけど今まで学ぶチャンスを逃していた…そんなあなたのための本です!アルゴリズムのエッセンスがするっと理解できて一生ものの知識が身につきます。会話とかわいいアクションで動物たちと楽しく学べ、さらに手を動かしてPythonで確認できる、断然お得なアルゴリズム教本、ぜひ手に取ってお読みください。
目次
■第1章 しまう ─ データ構造
1-1 どれを選べば楽々? ─ データ構造
1-2 積み上げる ─ スタック
1-3 早い者順に並ぶ ─ キュー
1-4 使うデータ構造しだいで答えを出す手間が変わる
1-5 パソコンをネジ回しで開けると見えるヒント ─ メモリ
1-6 メモリにそっくり!? ─ 配列
1-7 チャレンジ! 配列を使ったプログラム
【コラム】LinuxにおけるPythonのインストール
1-8 矢印があれば移動が減る ─ 連結リスト
1-9 枝分かれを表現 ─ 木と木構造
1-10 二分木を使って式を表現する
■第2章 みつける ─ 探索のアルゴリズム
2-1 たくさんのものから探そう! ─ 探索
2-2 チャレンジ! ユーザのデータをしまうプログラム
2-3 端から探そう ─ 線形探索法
2-4 アルゴリズムの評価はおおざっぱに ─ O記法
【コラム】関数
2-5 チャレンジ! 線形探索法のプログラム
2-6 探しものは前に? それとも後ろに? ─ 二分探索法
2-7 チャレンジ! 最悪と最良のケースにおける計算量を求める
2-8 一撃で見つける ─ ハッシュ法
2-9 ハッシュ値が衝突したらどうする?
2-10 チャレンジ! ハッシュ法でデータを探索するプログラム
■第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 マージソートの手順
3-15 マージソートの計算量
3-16 マージソートの領域計算量
■第4章 かくす ─ 暗号とセキュリティ
4-1 何を知られると解読されてしまうのか? ─ 暗号の基礎
4-2 鍵をどうやって渡す? ─ 共通鍵方式
4-3 相手に渡した鍵は知られても大丈夫 ─ 公開鍵方式
4-4 本当に本人? ─ 認証
4-5 チャレンジ! 公開鍵方式を体験
■第5章 かんがえる? ─ 人工知能(AI)
5-1 モデルは神経細胞 ─ ディープラーニング
5-2 チャレンジ! ニューラルネットワークにおける計算
5-3 どれとどれが仲間? ─ クラスタリング
付録A Pythonのインストール
付録B エラー対処法
1-1 どれを選べば楽々? ─ データ構造
1-2 積み上げる ─ スタック
1-3 早い者順に並ぶ ─ キュー
1-4 使うデータ構造しだいで答えを出す手間が変わる
1-5 パソコンをネジ回しで開けると見えるヒント ─ メモリ
1-6 メモリにそっくり!? ─ 配列
1-7 チャレンジ! 配列を使ったプログラム
【コラム】LinuxにおけるPythonのインストール
1-8 矢印があれば移動が減る ─ 連結リスト
1-9 枝分かれを表現 ─ 木と木構造
1-10 二分木を使って式を表現する
■第2章 みつける ─ 探索のアルゴリズム
2-1 たくさんのものから探そう! ─ 探索
2-2 チャレンジ! ユーザのデータをしまうプログラム
2-3 端から探そう ─ 線形探索法
2-4 アルゴリズムの評価はおおざっぱに ─ O記法
【コラム】関数
2-5 チャレンジ! 線形探索法のプログラム
2-6 探しものは前に? それとも後ろに? ─ 二分探索法
2-7 チャレンジ! 最悪と最良のケースにおける計算量を求める
2-8 一撃で見つける ─ ハッシュ法
2-9 ハッシュ値が衝突したらどうする?
2-10 チャレンジ! ハッシュ法でデータを探索するプログラム
■第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 マージソートの手順
3-15 マージソートの計算量
3-16 マージソートの領域計算量
■第4章 かくす ─ 暗号とセキュリティ
4-1 何を知られると解読されてしまうのか? ─ 暗号の基礎
4-2 鍵をどうやって渡す? ─ 共通鍵方式
4-3 相手に渡した鍵は知られても大丈夫 ─ 公開鍵方式
4-4 本当に本人? ─ 認証
4-5 チャレンジ! 公開鍵方式を体験
■第5章 かんがえる? ─ 人工知能(AI)
5-1 モデルは神経細胞 ─ ディープラーニング
5-2 チャレンジ! ニューラルネットワークにおける計算
5-3 どれとどれが仲間? ─ クラスタリング
付録A Pythonのインストール
付録B エラー対処法
著者情報
松浦 健一郎
松浦 健一郎(まつうら けんいちろう)
東京大学工学系研究科電子工学専攻修士課程修了。研究所において並列コンピューティングの研究に従事した後、フリーのプログラマ&ライター&講師として活動中。企業や研究機関向けにソフトウェア、ゲーム、ライブラリ等を受注開発したり、遠隔配信や動画も含む研修の講師を務めたりしている。司 ゆきと共著でプログラミングやゲームに関する著書多数。
司 ゆき(つかさ ゆき)
東京大学理学系研究科情報科学専攻修士課程修了。大学では人工知能(自然言語処理)を学ぶ。研究機関や企業向けのソフトウェア開発や研究支援、ゲーム開発、書籍や研修用テキストの執筆、論文や技術記事の翻訳、翻訳書の技術監修、学校におけるプログラミングの講師を行う。
松浦, 健一郎
司 ゆき
司, ゆき