This commit is contained in:
krahets
2026-10-30 02:14:22 +08:00
parent a5ad0118bc
commit df28e1c562
1318 changed files with 33593 additions and 30289 deletions

View File

@@ -6,7 +6,7 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="アニメーション図解とワンクリック実行コードで学べるデータ構造とアルゴリズムの入門書">
<meta name="description" content="アニメーションによる図解とワンクリックで実行できるコードで学ぶ、データ構造とアルゴリズムの入門書">
<meta name="author" content="krahets">
@@ -39,7 +39,7 @@
<title>参考文献 - Hello アルゴリズム</title>
<title>参考文献 - Hello Algo</title>
@@ -111,17 +111,6 @@
<div class="banner-svg">
<svg xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.-->
<path
d="M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75H192 160 64c-35.3 0-64 28.7-64 64v96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V352l8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V300.4c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4V32zm-64 76.7V240 371.3C357.2 317.8 280.5 288 200.7 288H192V192h8.7c79.8 0 156.5-29.8 215.3-83.3z" />
</svg>
<span>日本語版のレビュアーを募集しています。詳しくは <a href="/ja/chapter_appendix/contribution/">こちら</a> をご覧ください。</span>
</div>
</div>
</aside>
@@ -135,9 +124,9 @@
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="ヘッダー">
<a href="./.." title="Hello アルゴリズム" class="md-header__button md-logo" aria-label="Hello アルゴリズム" data-md-component="logo">
<a href="./.." title="Hello Algo" class="md-header__button md-logo" aria-label="Hello Algo" data-md-component="logo">
<img src="../assets/images/logo.svg" alt="Hello アルゴリズム">
<img src="../assets/images/logo.svg" alt="Hello Algo">
</a>
<label class="md-header__button md-icon" for="__drawer" aria-label="ナビゲーション">
@@ -148,7 +137,7 @@
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Hello アルゴリズム
Hello Algo
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
@@ -167,9 +156,9 @@
<input class="md-option" data-md-color-media="none" data-md-color-scheme="default" data-md-color-primary="white" data-md-color-accent="teal" aria-label="ダークモード" type="radio" name="__palette" id="__palette_0">
<input class="md-option" data-md-color-media="none" data-md-color-scheme="default" data-md-color-primary="white" data-md-color-accent="teal" aria-label="ダークモードに切り替える" type="radio" name="__palette" id="__palette_0">
<label class="md-header__button md-icon" title="ダークモード" for="__palette_1" hidden>
<label class="md-header__button md-icon" title="ダークモードに切り替える" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7.5 2c-1.79 1.15-3 3.18-3 5.5s1.21 4.35 3.03 5.5C4.46 13 2 10.54 2 7.5A5.5 5.5 0 0 1 7.5 2m11.57 1.5 1.43 1.43L4.93 20.5 3.5 19.07zm-6.18 2.43L11.41 5 9.97 6l.42-1.7L9 3.24l1.75-.12.58-1.65L12 3.1l1.73.03-1.35 1.13zm-3.3 3.61-1.16-.73-1.12.78.34-1.32-1.09-.83 1.36-.09.45-1.29.51 1.27 1.36.03-1.05.87zM19 13.5a5.5 5.5 0 0 1-5.5 5.5c-1.22 0-2.35-.4-3.26-1.07l7.69-7.69c.67.91 1.07 2.04 1.07 3.26m-4.4 6.58 2.77-1.15-.24 3.35zm4.33-2.7 1.15-2.77 2.2 2.54zm1.15-4.96-1.14-2.78 3.34.24zM9.63 18.93l2.77 1.15-2.53 2.19z"/></svg>
</label>
@@ -177,9 +166,9 @@
<input class="md-option" data-md-color-media="none" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="teal" aria-label="ライトモード" type="radio" name="__palette" id="__palette_1">
<input class="md-option" data-md-color-media="none" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="teal" aria-label="ライトモードに切り替える" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="ライトモード" for="__palette_0" hidden>
<label class="md-header__button md-icon" title="ライトモードに切り替える" for="__palette_0" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7.5 2c-1.79 1.15-3 3.18-3 5.5s1.21 4.35 3.03 5.5C4.46 13 2 10.54 2 7.5A5.5 5.5 0 0 1 7.5 2m11.57 1.5 1.43 1.43L4.93 20.5 3.5 19.07zm-6.18 2.43L11.41 5 9.97 6l.42-1.7L9 3.24l1.75-.12.58-1.65L12 3.1l1.73.03-1.35 1.13zm-3.3 3.61-1.16-.73-1.12.78.34-1.32-1.09-.83 1.36-.09.45-1.29.51 1.27 1.36.03-1.05.87zM19 13.5a5.5 5.5 0 0 1-5.5 5.5c-1.22 0-2.35-.4-3.26-1.07l7.69-7.69c.67.91 1.07 2.04 1.07 3.26m-4.4 6.58 2.77-1.15-.24 3.35zm4.33-2.7 1.15-2.77 2.2 2.54zm1.15-4.96-1.14-2.78 3.34.24zM9.63 18.93l2.77 1.15-2.53 2.19z"/></svg>
</label>
@@ -293,12 +282,12 @@
<nav class="md-nav md-nav--primary" aria-label="ナビゲーション" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="./.." title="Hello アルゴリズム" class="md-nav__button md-logo" aria-label="Hello アルゴリズム" data-md-component="logo">
<a href="./.." title="Hello Algo" class="md-nav__button md-logo" aria-label="Hello Algo" data-md-component="logo">
<img src="../assets/images/logo.svg" alt="Hello アルゴリズム">
<img src="../assets/images/logo.svg" alt="Hello Algo">
</a>
Hello アルゴリズム
Hello Algo
</label>
<div class="md-nav__source">
@@ -349,7 +338,7 @@
<span class="md-ellipsis">
はじめに
序文
</span>
@@ -365,7 +354,7 @@
<span class="md-nav__icon md-icon"></span>
はじめに
序文
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -419,7 +408,7 @@
<span class="md-ellipsis">
第 0 章 &nbsp; 前書き
第 0 章 &nbsp; はじめに
</span>
@@ -440,7 +429,7 @@
<span class="md-nav__icon md-icon"></span>
第 0 章 &nbsp; 前書き
第 0 章 &nbsp; はじめに
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -575,7 +564,7 @@
<span class="md-ellipsis">
第 1 章 &nbsp; アルゴリズムを知る
第 1 章 &nbsp; アルゴリズムとの出会い
</span>
@@ -596,7 +585,7 @@
<span class="md-nav__icon md-icon"></span>
第 1 章 &nbsp; アルゴリズムを知る
第 1 章 &nbsp; アルゴリズムとの出会い
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -617,7 +606,7 @@
<span class="md-ellipsis">
1.1 &nbsp; アルゴリズムは至るところにある
1.1 &nbsp; アルゴリズムはどこにでもある
</span>
@@ -737,7 +726,7 @@
<span class="md-ellipsis">
第 2 章 &nbsp; 計算量解析
第 2 章 &nbsp; 計算量の解析
</span>
@@ -758,7 +747,7 @@
<span class="md-nav__icon md-icon"></span>
第 2 章 &nbsp; 計算量解析
第 2 章 &nbsp; 計算量の解析
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -779,7 +768,7 @@
<span class="md-ellipsis">
2.1 &nbsp; アルゴリズム効率の評価
2.1 &nbsp; アルゴリズムの効率の評価
</span>
@@ -914,7 +903,7 @@
<span class="md-ellipsis">
2.6 &nbsp; 演習
2.6 &nbsp; 練習問題
</span>
@@ -1076,7 +1065,7 @@
<span class="md-ellipsis">
3.3 &nbsp; 数値エンコーディング *
3.3 &nbsp; 数値の符号化 *
</span>
@@ -1157,7 +1146,7 @@
<span class="md-ellipsis">
3.6 &nbsp; 演習
3.6 &nbsp; 練習問題
</span>
@@ -1400,7 +1389,7 @@
<span class="md-ellipsis">
4.6 &nbsp; 演習
4.6 &nbsp; 練習問題
</span>
@@ -1614,7 +1603,7 @@
<span class="md-ellipsis">
5.5 &nbsp; 演習
5.5 &nbsp; 練習問題
</span>
@@ -1828,7 +1817,7 @@
<span class="md-ellipsis">
6.5 &nbsp; 演習
6.5 &nbsp; 練習問題
</span>
@@ -2100,7 +2089,7 @@
<span class="md-ellipsis">
7.7 &nbsp; 演習
7.7 &nbsp; 練習問題
</span>
@@ -2233,7 +2222,7 @@
<span class="md-ellipsis">
8.2 &nbsp; ヒープ構築
8.2 &nbsp; ヒープの構築
</span>
@@ -2314,7 +2303,7 @@
<span class="md-ellipsis">
8.5 &nbsp; 演習
8.5 &nbsp; 練習問題
</span>
@@ -2528,7 +2517,7 @@
<span class="md-ellipsis">
9.5 &nbsp; 演習
9.5 &nbsp; 練習問題
</span>
@@ -2665,7 +2654,7 @@
<span class="md-ellipsis">
10.2 &nbsp; 二分探索の挿入位置
10.2 &nbsp; 二分探索で挿入位置を探す
</span>
@@ -2692,7 +2681,7 @@
<span class="md-ellipsis">
10.3 &nbsp; 二分探索の境界
10.3 &nbsp; 二分探索で境界を探す
</span>
@@ -2719,7 +2708,7 @@
<span class="md-ellipsis">
10.4 &nbsp; ハッシュによる最適化戦略
10.4 &nbsp; ハッシュを使った最適化
</span>
@@ -2746,7 +2735,7 @@
<span class="md-ellipsis">
10.5 &nbsp; 探索アルゴリズム再考
10.5 &nbsp; 探索アルゴリズムを改めて考える
</span>
@@ -2800,7 +2789,7 @@
<span class="md-ellipsis">
10.7 &nbsp; 演習
10.7 &nbsp; 練習問題
</span>
@@ -3136,7 +3125,7 @@
<span class="md-ellipsis">
11.9 &nbsp; 計数ソート
11.9 &nbsp; カウントソート
</span>
@@ -3217,7 +3206,7 @@
<span class="md-ellipsis">
11.12 &nbsp; 演習
11.12 &nbsp; 練習問題
</span>
@@ -3325,7 +3314,7 @@
<span class="md-ellipsis">
12.1 &nbsp; 分割統治法
12.1 &nbsp; 分割統治アルゴリズム
</span>
@@ -3352,7 +3341,7 @@
<span class="md-ellipsis">
12.2 &nbsp; 分割統治探索戦略
12.2 &nbsp; 分割統治による探索戦略
</span>
@@ -3460,7 +3449,7 @@
<span class="md-ellipsis">
12.6 &nbsp; 演習
12.6 &nbsp; 練習問題
</span>
@@ -3595,7 +3584,7 @@
<span class="md-ellipsis">
13.2 &nbsp; 全順列問題
13.2 &nbsp; 順列列挙問題
</span>
@@ -3622,7 +3611,7 @@
<span class="md-ellipsis">
13.3 &nbsp; 部分和問題
13.3 &nbsp; 部分集合和問題
</span>
@@ -3703,7 +3692,7 @@
<span class="md-ellipsis">
13.6 &nbsp; 演習
13.6 &nbsp; 練習問題
</span>
@@ -3815,7 +3804,7 @@
<span class="md-ellipsis">
14.1 &nbsp; 動的計画法入門
14.1 &nbsp; 動的計画法への第一歩
</span>
@@ -3842,7 +3831,7 @@
<span class="md-ellipsis">
14.2 &nbsp; 動的計画法の問題特性
14.2 &nbsp; 動的計画法の問題の特徴
</span>
@@ -3869,7 +3858,7 @@
<span class="md-ellipsis">
14.3 &nbsp; 動的計画法の問題解決の考え方
14.3 &nbsp; 動的計画法の解き方
</span>
@@ -3923,7 +3912,7 @@
<span class="md-ellipsis">
14.5 &nbsp; 完全ナップサック問題
14.5 &nbsp; 個数制限なしナップサック問題
</span>
@@ -4004,7 +3993,7 @@
<span class="md-ellipsis">
14.8 &nbsp; 演習
14.8 &nbsp; 練習問題
</span>
@@ -4112,7 +4101,7 @@
<span class="md-ellipsis">
15.1 &nbsp; 貪欲法
15.1 &nbsp; 貪欲アルゴリズム
</span>
@@ -4139,7 +4128,7 @@
<span class="md-ellipsis">
15.2 &nbsp; 分数ナップサック問題
15.2 &nbsp; 分割可能ナップサック問題
</span>
@@ -4193,7 +4182,7 @@
<span class="md-ellipsis">
15.4 &nbsp; 最大積分割問題
15.4 &nbsp; 整数を分割して積を最大にする問題
</span>
@@ -4247,7 +4236,7 @@
<span class="md-ellipsis">
15.6 &nbsp; 演習
15.6 &nbsp; 練習問題
</span>
@@ -4376,7 +4365,7 @@
<span class="md-ellipsis">
16.2 &nbsp; 一緒に制作に参加しましょう
16.2 &nbsp; 一緒に本書を作りましょう
</span>
@@ -4553,15 +4542,15 @@
<!-- Page content -->
<h1 id="_1">参考文献<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1>
<h1 id="_1">参考文献<a class="headerlink" href="#_1" title="この見出しへのリンク">&para;</a></h1>
<p>[1] Thomas H. Cormen, et al. Introduction to Algorithms (3<sup>rd</sup> Edition).</p>
<p>[2] Aditya Bhargava. Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People (1<sup>st</sup> Edition).</p>
<p>[3] Robert Sedgewick, et al. Algorithms (4<sup>th</sup> Edition).</p>
<p>[4] 严蔚敏. データ構造(C 言語版).</p>
<p>[5] 邓俊辉. データ構造(C++ 言語版、第3版).</p>
<p>[6] マーク・アレン・ワイス著,陈越訳. データ構造とアルゴリズム解析:Java言語による記述(第3版).</p>
<p>[7] 程杰. データ構造の話.</p>
<p>[8] 王争. データ構造とアルゴリズムの美.</p>
<p>[4] 严蔚敏. 数据结构(C 语言版).</p>
<p>[5] 邓俊辉. 数据结构(C++ 语言版,第三版).</p>
<p>[6] 马克 艾伦 维斯 著、陈越 訳. 数据结构与算法分析:Java语言描述(第三版).</p>
<p>[7] 程杰. 大话数据结构.</p>
<p>[8] 王争. 数据结构与算法之美.</p>
<p>[9] Gayle Laakmann McDowell. Cracking the Coding Interview: 189 Programming Questions and Solutions (6<sup>th</sup> Edition).</p>
<p>[10] Aston Zhang, et al. Dive into Deep Learning.</p>
@@ -4586,7 +4575,7 @@ aria-label="フッター"
<a
href="../chapter_appendix/terminology/"
class="md-footer__link md-footer__link--prev"
aria-label="前: 16.3 &amp;nbsp; 用語集"
aria-label="前: 16.3   用語集"
rel="prev"
>
<div class="md-footer__button md-icon">
@@ -4629,7 +4618,7 @@ aria-label="フッター"
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2026 krahets<br>The website content is licensed under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</a>
Copyright &copy; 2026 krahets<br>このサイトのコンテンツのライセンス: <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</a>
</div>
@@ -4689,7 +4678,7 @@ aria-label="フッター"
<script id="__config" type="application/json">{"annotate":null,"base":"../","features":["content.action.edit","content.code.annotate","content.code.copy","content.tabs.link","content.tooltips","navigation.indexes","navigation.tracking","search.highlight","search.share","search.suggest","toc.follow"],"search":"../assets/javascripts/workers/search.b6b7e04f.min.js","tags":null,"translations":{"clipboard.copied":"コピーしました","clipboard.copy":"クリップボードへコピー","search.result.more.one":"このページ内にもう1件見つかりました","search.result.more.other":"このページ内にあと#件見つかりました","search.result.none":"何も見つかりませんでした","search.result.one":"1件見つかりました","search.result.other":"#件見つかりました","search.result.placeholder":"検索キーワードを入力してください","search.result.term.missing":"検索に含まれない","select.version":"バージョン切り替え"},"version":null}</script>
<script src="../assets/javascripts/bundle.e559d5b757c25f1f23bd887b700c56e3018b129d471c011292faeb47b8b74ce4.min.js"></script>
<script src="../assets/javascripts/bundle.bbe737eb31084dfc2f0d91a916c44a189920caa85eb843c038b80c96c32c779e.min.js"></script>
<script src="../javascripts/mathjax.js"></script>