「Hello アルゴリズム」用語集ガイド:全15章の重要用語を英語・日本語の対訳で整理する 📅 发布时间:2026/9/8 21:30:12 👁 浏览次数: 「Hello アルゴリズム」用語集ガイド全15章の重要用語を英語・日本語の対訳で整理する【免费下载链接】hello-algo《Hello 算法》动画图解、一键运行的数据结构与算法教程。支持简中、繁中、English、日本語提供 Python, Java, C, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 等代码实现项目地址: https://gitcode.com/GitHub_Trending/he/hello-algo本書日本語版hello-algoの付録には、登場する重要な用語を一覧化した「用語集」(terminology.md)が用意されています。データ構造とアルゴリズムを学ぶ際、特に海外の論文や英語文献を読む機会が多い学習者にとって、英語の正式名称を日本語の意味とセットで押さえておくことは、学習効率を大きく左右します。本ガイドでは、この付録 16.3「用語集」の全 128 語を、章構成と対応させながら整理し直し、それぞれがどの章・どのコードで登場するかを示します。読み終えると、本書の全章を横断する「英語→日本語」の用語マップを手に入れられます。1. 用語集は「第16章 付録」のどの位置にあるのか日本語版ドキュメントのナビゲーションja/mkdocs.ymlでは、第 16 章「付録」に以下のページが配置されています。16.1 プログラミング環境のインストールinstallation.md16.2 一緒に制作に参加しましょうcontribution.md16.3 用語集terminology.mdつまり本用語集は、第 1 章アルゴリズムを知るから第 15 章貪欲法までを読了した後に復習・参照するための索引的リファレンスです。各用語は本文中で何度も登場するため、辞書として使いながら戻り読みするのが想定された用途です。2. 全 128 語の分野別対訳一覧元の用語集は一つの大きな表ですが、ここでは学習の流れに沿って分野ごとに再編しました。表の内容は原文の記載をそのまま引き継いでいます英語表記 → 日本語表記。※$O$、$n$などの数式表記は原文どおりです。2-1. アルゴリズムと計算量解析の基本第1〜2章第 1 章アルゴリズムを知ると第 2 章計算量解析の中心用語です。本文は what_is_dsa.md、iteration_and_recursion.md、time_complexity.md、space_complexity.md に対応します。English日本語algorithmアルゴリズムdata structureデータ構造codeコードfileファイルfunction関数methodメソッドvariable変数asymptotic complexity analysis漸近計算量解析time complexity時間計算量space complexity空間計算量loopループiteration反復recursion再帰tail recursion末尾再帰recursion tree再帰木big-$O$ notationビッグオー記法asymptotic upper bound漸近上界補足asymptotic complexity analysis漸近計算量解析とbig-$O$ notationビッグオー記法、asymptotic upper bound漸近上界は第 2 章で最も重要な概念トリオです。「計算量のオーダー 漸近上界」という対応関係を日本語と英語の両方で覚えておくと、英語の解説記事を読む際の混乱を防げます。またtail recursion末尾再帰やrecursion tree再帰木は、再帰の仕組みを分析するための専門語で、コードの実行構造をイメージするのに欠かせません。2-2. 数値のエンコーディング第3章・発展第 3 章の応用節「数値エンコーディング」number_encoding.md に登場します。English日本語sign-magnitude符号絶対値表現1’s complement1の補数2’s complement2の補数補足コンピュータ内部での負数表現に関わる 3 語です。sign-magnitudeは「符号ビット絶対値」、1s complementは「1の補数」、2s complementは「2の補数」で、実際の整数演算に使われるのは主に2s complementです。2-3. 配列・連結リスト・メモリ階層第4章array.md、linked_list.md、list.md、ram_and_cache.md に対応します。English日本語array配列indexインデックスlinked list連結リストlinked list node, list node連結リストノードhead node先頭ノードtail node末尾ノードlistリストdynamic array動的配列hard diskハードディスクrandom-access memory (RAM)メモリcache memoryキャッシュcache missキャッシュミスcache hit rateキャッシュヒット率補足head node先頭ノードとtail node末尾ノードは、連結リストの挿入・削除操作先頭・末尾への O(1) 挿入を理解するための基本語です。cache missやcache hit rateは、配列と連結リストの実効性能の差を説明する節メモリとキャッシュで使われる専門語です。2-4. スタック・キュー・両端キュー第5章stack.md、queue.md、deque.md に対応します。English日本語stackスタックtop of the stackスタックトップbottom of the stackスタックボトムqueueキューdouble-ended queue両端キューfront of the queueキュー先頭rear of the queueキュー末尾補足スタックの用語は「上top下bottom」、キューの用語は「先頭front末尾rear」と、方向を表す単語が構造ごとに異なります。double-ended queue両端キューは push / pop を両端で行えるデータ構造で、本書ではdequeの章題としても使われています。2-5. ハッシュテーブル第6章hash_map.md、hash_collision.md、hash_algorithm.md に対応します。English日本語hash tableハッシュテーブルhash setハッシュ集合bucketバケットhash functionハッシュ関数hash collisionハッシュ衝突load factor負荷率separate chaining連鎖アドレス法open addressingオープンアドレス法linear probing線形探索lazy deletion遅延削除補足ハッシュ衝突への対処法であるseparate chaining連鎖アドレス法チェーン法とopen addressingオープンアドレス法は、本書のコードで実際に実装されています。たとえば C 版では hash_map_chaining.cpp と hash_map_open_addressing.cpp が対応し、linear probing線形探索やlazy deletion遅延削除削除マーク方式の挙動を確認できます。load factor負荷率は、テーブル容量に対する格納数の割合を示し、再ハッシュ拡張のタイミングを決める指標です。2-6. 木第7章本書で最も用語が多い分野です。binary_tree.md、binary_tree_traversal.md、binary_search_tree.md、avl_tree.md に対応します。English日本語binary tree二分木tree nodeノードleft-child node左子ノードright-child node右子ノードparent node親ノードleft subtree左部分木right subtree右部分木root node根ノードleaf node葉ノードedge辺levelレベルdegree次数height高さdepth深さperfect binary tree完備二分木complete binary tree完全二分木full binary tree満二分木balanced binary tree平衡二分木binary search tree二分探索木AVL treeAVL 木red-black tree赤黒木level-order traversalレベル順走査breadth-first traversal幅優先走査depth-first traversal深さ優先走査pre-order traversal前順走査in-order traversal中順走査post-order traversal後順走査balanced binary search tree平衡二分探索木balance factor平衡係数補足注意したい対訳が 3 組あります。perfect/complete/fullbinary tree日本語では「完備二分木完全二分木満二分木」と訳し分けられており、英語のperfect・complete・fullの定義を日本語名と誤って対応させないよう注意が必要です。level-order/breadth-first/depth-firsttraversal木の走査における「レベル順」はグラフの文脈ではbreadth-first traversal幅優先走査と呼ばれ、depth-first traversal深さ優先走査の派生としてpre-order前順・in-order中順・post-order後順があります。balance factor平衡係数AVL 木の回転判定に使う「左部分木の高さ − 右部分木の高さ」で、日本語版コード avl_tree.c などに実装されています。2-7. ヒープ第8章heap.md、build_heap.md、top_k.md に対応します。English日本語heapヒープmax heap最大ヒープmin heap最小ヒープpriority queue優先度付きキューheapifyヒープ化top-$k$ problemTop-$k$ 問題補足heapifyヒープ化は配列からヒープ条件を満たす構造を構築する操作で、本書のコードでは my_heap.cpp のヒープ構築処理や build_heap.md で詳細に扱われます。priority queue優先度付きキューは多くの言語標準ライブラリの API 名としても登場し、ヒープの応用先として本書ではtop-$k$ problemTop-k 問題が top_k.cpp に実装されています。2-8. グラフ第9章graph.md、graph_operations.md、graph_traversal.md に対応します。English日本語graphグラフvertex頂点undirected graph無向グラフdirected graph有向グラフconnected graph連結グラフdisconnected graph非連結グラフweighted graph重み付きグラフadjacency隣接path経路in-degree入次数out-degree出次数adjacency matrix隣接行列adjacency list隣接リストbreadth-first search幅優先探索depth-first search深さ優先探索補足in-degree入次数とout-degree出次数は有向グラフの頂点に流入・流出する辺の数で、adjacency matrix隣接行列とadjacency list隣接リストはグラフの 2 大記憶方式です。日本語版コードでは graph_adjacency_matrix.c と graph_adjacency_list.c にそれぞれ実装されています。2-9. 探索第10章binary_search.md、searching_algorithm_revisited.md に対応します。English日本語binary search二分探索searching algorithm探索アルゴリズム補足探索の章では二分探索を中心に扱い、探索アルゴリズム全体の整理はsearching_algorithm_revisited探索アルゴリズム再考で行われます。コードは binary_search.c などで確認できます。2-10. ソート第11章sorting_algorithm.md と、各ソートの個別ページselection_sort.md〜radix_sort.mdに対応します。English日本語sorting algorithmソートアルゴリズムselection sort選択ソートbubble sortバブルソートinsertion sort挿入ソートquick sortクイックソートmerge sortマージソートheap sortヒープソートbucket sortバケットソートcounting sort計数ソートradix sort基数ソート補足10 種のソートは第 11 章のサブページとして個別に解説されています。bucket sortバケットソート・counting sort計数ソート・radix sort基数ソートは比較に基づかないソート群で、非比較ソートの英語名もあわせて覚えると、各アルゴリズムの分類比較ベース vs 非比較ベースが整理しやすくなります。2-11. 分割統治第12章divide_and_conquer.md、hanota_problem.md に対応します。English日本語divide and conquer分割統治hanota problemハノイの塔問題補足分割統治法の代表例としてハノイの塔問題が登場します。本書ではハノイの塔を再帰的に解く過程そのものが分割統治の考え方のデモンストレーションとして使われており、コードは hanota.c などにあります。2-12. バックトラッキング第13章backtracking_algorithm.md、permutations_problem.md、subset_sum_problem.md、n_queens_problem.md に対応します。English日本語backtracking algorithmバックトラッキングアルゴリズムconstraint制約solution解state状態pruning枝刈りpermutations problem全順列問題subset-sum problem部分和問題$n$-queens problem$n$ クイーン問題補足constraint制約・solution解・state状態は探索の三要素、pruning枝刈りは探索空間を削減する核心テクニックです。subset-sum problem部分和問題はsubset_sum_i.cやsubset_sum_ii.c、$n$-queens problemは n_queens.c などのコードと対応します。2-13. 動的計画法第14章intro_to_dynamic_programming.md、dp_problem_features.md、knapsack_problem.md、edit_distance_problem.md に対応します。English日本語dynamic programming動的計画法initial state初期状態state-transition equation状態遷移方程式knapsack problemナップサック問題edit distance problem編集距離問題補足initial state初期状態とstate-transition equation状態遷移方程式は、動的計画法の設計手順定義 → 遷移式 → 境界条件の柱となる用語です。knapsack problemナップサック問題は knapsack.c、edit distance problem編集距離問題は edit_distance.c で実装を確認できます。2-14. 貪欲法第15章greedy_algorithm.md と各応用問題分数ナップサック・最大容量・最大積分割に対応します。English日本語greedy algorithm貪欲法補足日本語版の章名は「貪欲法」で統一されています。英語圏ではgreedy algorithmのほか「greedy approach」「greedy strategy」とも呼ばれるため、まとめて認識しておくとよいでしょう。応用問題のコードは coin_change_greedy.c、fractional_knapsack.c、max_capacity.c、max_product_cutting.c です。3. 分野横断で押さえたい「紛らわしい対訳」3 点用語集全体を通して、特に取り違えやすいポイントを整理します。木の三形状perfect / complete / full日本語の「完全二分木」は英語complete binary treeを指す一方、英語perfect binary treeは「完備二分木」と訳されます。日本語名から英語を逆引きするときはこのずれに注意してください。走査の命名木のlevel-order traversalはグラフ一般のbreadth-first traversalと同じ戦略です。探索の章第10章以降ではbreadth-first search (BFS)・depth-first search (DFS)と表現が切り替わるため、「木の走査用語」と「グラフの探索用語」の対応関係を意識すると混乱しません。計算量の三語time complexity時間計算量・space complexity空間計算量の上に立つ概念がasymptotic complexity analysis漸近計算量解析とbig-$O$ notationビッグオー記法です。英語文献では「order of growth」「asymptotic bound」といった言い換えも頻出します。4. 用語集を活かす使い方とリポジトリ構成との対応本用語集は「英語文献を読む際に役立つよう、各名詞の英語表現も覚えておくことをおすすめします」という注記のとおり、英語学習とアルゴリズム学習の橋渡しを目的にしたリファレンスです。リポジトリ全体と対応づけると、以下のような活用法が考えられます。本文章との対応各用語は第 1〜15 章の各 md に登場します。たとえば「2-6. 木」の用語は chapter_tree 配下の 7 ファイルに、「2-7. ヒープ」の用語は chapter_heap 配下に対応します。疑問が生じたら該当章へ戻り、図解.assetsの PNGとあわせて意味を確認するのが効率的です。コード実装との対応日本語版のコード一式は ja/codes にあり、C / C / C# / Dart / Go / Java / JavaScript / Kotlin / Python / Ruby / Rust / Swift / TypeScript / Zig の各言語で同じ章構成が用意されています。たとえばハッシュ衝突の対処法をコードで見たい場合は hash_map_chaining.cpp と hash_map_open_addressing.cpp が、ヒープの操作を確認したい場合は heap.cpp・my_heap.cpp・top_k.cpp が該当します。実行環境との対応実際にコードを動かすための環境構築手順は付録 16.1 installation.md にまとめられています。用語集は章を横断した「索引」なので、まず本文を一読したあと、最後に本記事あるいは元の terminology.mdを辞書代わりに使うのが、最も効果的な学習サイクルといえます。日本語で概念を理解したら、英語表記を口に出して確認する習慣をつけるだけで、その後の英語文献・英語コミュニティでの情報収集の効率が確実に上がります。【免费下载链接】hello-algo《Hello 算法》动画图解、一键运行的数据结构与算法教程。支持简中、繁中、English、日本語提供 Python, Java, C, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 等代码实现项目地址: https://gitcode.com/GitHub_Trending/he/hello-algo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考