hello-algo 俄语版数据结构与算法术语表:英俄中三语对照与仓库源码印证
本文基于《Hello 算法》(hello-algo)仓库俄语文档附录中的术语表(terminology.md),完整收录全书 128 个核心数据结构与算法术语的英俄对照(并补充简体中文对照),将这些术语按复杂度分析、数组链表、栈队列、哈希、树、堆、图、查找排序、分治、回溯、动态规划与贪心十二个专题分组,并逐一映射到仓库对应的章节文档与多语言代码实现,帮助你以“术语—章节—源码”三条线索建立完整知识地图。
一、术语表的定位:俄语版第 16 章的最后一页
该术语表位于俄语文档的附录章节,在站点导航(ru/mkdocs.yml)中注册为第 16 章“Приложение(附录)”下的 16.3 节:
- Глава 16. Приложение:
- chapter_appendix/index.md
- 16.1 Установка среды программирования: chapter_appendix/installation.md
- 16.2 Присоединяйтесь к созданию книги: chapter_appendix/contribution.md
- 16.3 Глоссарий: chapter_appendix/terminology.md
原文档开篇给出了一条核心学习建议(译文):“建议记住各个术语的英文名称,以便更轻松地阅读英文资料。” 这一点在工程实践中非常关键——绝大多数算法论文、LeetCode 题解、技术博客和标准库 API 文档都以英文术语为索引词。例如当你看到 load factor、separate chaining 或 top-k problem 时,若能直接对应到“负载因子”“链地址法”“Top-k 问题”,就消除了阅读英文文献的第一道语言障碍。
该术语表在多语言版本中保持同一术语集合,可交叉对照:
- 简体中文版:terminology.md(English | 简体中文 两列)
- 日本語版:terminology.md
- 本文章主体:俄语版 terminology.md(English | Русский 两列)
下文第二、三节完整继承俄语版术语表的全部 128 个术语条目,并增加“简体中文”对照列,形成三语映射。
二、术语全表:按专题分组的英俄中三语对照
2.1 编程基础与复杂度分析(第 1、2 章相关术语)
原文档表格的第一部分覆盖最基础的编程概念与复杂度分析术语,对应书籍第 2 章“Анализ сложности(复杂度分析)”:
| English | Русский | 简体中文 |
|---|---|---|
| algorithm | алгоритм | 算法 |
| data structure | структура данных | 数据结构 |
| code | код | 代码 |
| file | файл | 文件 |
| function | функция | 函数 |
| method | метод | 方法 |
| variable | переменная | 变量 |
| asymptotic complexity analysis | асимптотический анализ сложности | 渐近复杂度分析 |
| time complexity | временная сложность | 时间复杂度 |
| space complexity | пространственная сложность | 空间复杂度 |
| loop | цикл | 循环 |
| iteration | итерация | 迭代 |
| recursion | рекурсия | 递归 |
| tail recursion | хвостовая рекурсия | 尾递归 |
| recursion tree | дерево рекурсии | 递归树 |
| big- notation | нотация big- | 大 记号 |
| asymptotic upper bound | асимптотическая верхняя граница | 渐近上界 |
这一组的术语在 ru/codes/python/chapter_computational_complexity/ 中有直接对应的可运行示例:iteration.py 演示循环与迭代,recursion.py 演示递归与递归树,time_complexity.py、space_complexity.py 分别对应时间复杂度与空间复杂度,worst_best_time_complexity.py 则覆盖最坏/最好时间复杂度的区分。
2.2 数值编码术语(第 3 章相关术语)
| English | Русский | 简体中文 |
|---|---|---|
| sign-magnitude | прямой код | 原码 |
| 1's complement | обратный код | 反码 |
| 2's complement | дополнительный код | 补码 |
这三个术语对应第 3 章“Структуры данных(数据结构)”下的可选小节 3.3“Кодирование чисел(数字编码)”,即计算机内部如何表示正负整数。注意俄语翻译有本地化习惯:sign-magnitude 译为“прямой код(直码/原码)”、1's complement 译为“обратный код(反码)”,与中文术语一一对应。
2.3 数组、链表与内存层次(第 4 章相关术语)
| 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 | коэффициент попадания в кеш | 缓存命中率 |
这一组术语横跨第 4 章的两个主题:array、linked list 等对应 4.1~4.3 节(数组、链表、列表),RAM、cache、cache miss、cache hit rate 对应可选小节 4.4“Оперативная память и кэш(内存与缓存)”。在俄语版代码中,ru/codes/python/chapter_array_and_linkedlist/ 提供四个实现文件:array.py(数组基本操作)、linked_list.py(链表操作)、list.py(列表抽象接口)与 my_list.py(基于动态数组的列表实现),其中节点结构定义在 ru/codes/python/modules/list_node.py,可直接印证 head node(头节点)、tail node(尾节点)等术语的实际形态。
2.4 栈与队列(第 5 章相关术语)
| English | Русский | 简体中文 |
|---|---|---|
| stack | стек | 栈 |
| top of the stack | вершина стека | 栈顶 |
| bottom of the stack | основание стека | 栈底 |
| queue | очередь | 队列 |
| double-ended queue | двусторонняя очередь | 双向队列 |
| front of the queue | голова очереди | 队首 |
| rear of the queue | хвост очереди | 队尾 |
对应第 5 章(5.1 栈、5.2 队列、5.3 双向队列)。代码侧 ru/codes/python/chapter_stack_and_queue/ 采用“接口 + 多种实现”的组织方式:stack.py、queue.py、deque.py 定义抽象接口,array_stack.py、array_queue.py、array_deque.py 是数组实现,linkedlist_stack.py、linkedlist_queue.py、linkedlist_deque.py 是链表实现——共 9 个文件,恰好覆盖术语表中全部 7 个术语。
2.5 哈希表(第 6 章相关术语)
| English | Русский | 简体中文 |
|---|---|---|
| hash table | хеш-таблица | 哈希表 |
| hash set | хеш-набор | 哈希集合 |
| bucket | бакет | 桶 |
| hash function | хеш-функция | 哈希函数 |
| hash collision | хеш-коллизия | 哈希冲突 |
| load factor | коэффициент заполнения | 负载因子 |
| separate chaining | цепная адресация | 链地址法 |
| open addressing | открытая адресация | 开放寻址 |
| linear probing | линейное зондирование | 线性探测 |
| lazy deletion | ленивое удаление | 懒删除 |
这一组 10 个术语是第 6 章(哈希表、哈希冲突、哈希算法)的完整词汇表,代码实现位于 ru/codes/python/chapter_hashing/:simple_hash.py(简单哈希)、hash_map.py(基础哈希表)、hash_map_chaining.py(链地址法)、hash_map_open_addressing.py(开放寻址)、array_hash_map.py(基于数组对实现的映射)与 built_in_hash.py(语言内置哈希的使用示例)。
2.6 二叉树(第 7 章相关术语,全书最大术语组)
树相关术语共 29 个,是原表中规模最大的一组,完整覆盖第 7 章:
| 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 tree | АВЛ-дерево | AVL 树 |
| 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 | фактор баланса | 平衡因子 |
对应代码在 ru/codes/python/chapter_tree/:binary_tree.py(二叉树构造)、binary_tree_dfs.py(深度优先遍历,含前序/中序/后序)、binary_tree_bfs.py(广度优先遍历)、array_binary_tree.py(数组表示的二叉树)、binary_search_tree.py(二叉搜索树)与 avl_tree.py(AVL 树,含旋转与平衡因子维护)。树节点结构定义于 ru/codes/python/modules/tree_node.py,其中的 val、left、right 字段正是术语表中 root/leaf/edge 等抽象概念的具体载体。
2.7 堆(第 8 章相关术语)
| English | Русский | 简体中文 |
|---|---|---|
| heap | куча | 堆 |
| max heap | максимальная куча | 大顶堆 |
| min heap | минимальная куча | 小顶堆 |
| priority queue | приоритетная очередь | 优先队列 |
| heapify | упорядочивание кучи | 堆化 |
| top- problem | поиск наибольших элементов | Top- 问题 |
对应第 8 章(8.1 堆、8.2 堆的构建、8.3 Top-k 问题)。注意俄语中“堆”译为“куча”(直译为“堆/小丘”),且排序章中的堆排序因此被称为“пирамидальная сортировка(金字塔排序)”,读俄语资料时这是同一个术语。代码位于 ru/codes/python/chapter_heap/ 的 heap.py、my_heap.py(手写堆)与 top_k.py(Top-k 问题),详见第四节源码印证。
2.8 图(第 9 章相关术语)
| 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 | поиск в глубину | 深度优先搜索 |
对应第 9 章(图、图的基本操作、图的遍历)。代码位于 ru/codes/python/chapter_graph/:graph_adjacency_matrix.py(邻接矩阵)、graph_adjacency_list.py(邻接表)、graph_bfs.py(广度优先搜索)、graph_dfs.py(深度优先搜索),顶点结构定义于 ru/codes/python/modules/vertex.py。
2.9 查找与排序(第 10、11 章相关术语)
| English | Русский | 简体中文 |
|---|---|---|
| binary search | двоичный поиск | 二分查找 |
| searching algorithm | алгоритм поиска | 搜索算法 |
| sorting algorithm | алгоритм сортировки | 排序算法 |
| selection sort | сортировкой выбором | 选择排序 |
| bubble sort | сортировка пузырьком | 冒泡排序 |
| insertion sort | сортировка вставкой | 插入排序 |
| quick sort | быстрая сортировка | 快速排序 |
| merge sort | сортировка слиянием | 归并排序 |
| heap sort | пирамидальная сортировка | 堆排序 |
| bucket sort | блочная сортировка | 桶排序 |
| counting sort | сортировка подсчетом | 计数排序 |
| radix sort | поразрядная сортировка | 基数排序 |
对应第 10 章(二分查找及其变体)与第 11 章(11.1~11.10 全部九种排序算法)。ru/codes/python/chapter_sorting/ 下九种排序各有一个同名实现文件(selection_sort.py、bubble_sort.py、insertion_sort.py、quick_sort.py、merge_sort.py、heap_sort.py、bucket_sort.py、counting_sort.py、radix_sort.py),ru/codes/python/chapter_searching/ 则包含 binary_search.py、binary_search_insertion.py、binary_search_edge.py、linear_search.py、hashing_search.py 与 two_sum.py。
2.10 分治、回溯、动态规划与贪心(第 12~15 章相关术语)
分治(第 12 章):
| English | Русский | 简体中文 |
|---|---|---|
| divide and conquer | разделяй и властвуй | 分治 |
| hanota problem | задача о Ханойской башне | 汉诺塔问题 |
回溯(第 13 章):
| English | Русский | 简体中文 |
|---|---|---|
| backtracking algorithm | алгоритм поиска с возвратом | 回溯算法 |
| constraint | ограничение | 约束 |
| solution | решение | 解 |
| state | состояние | 状态 |
| pruning | отсечение | 剪枝 |
| permutations problem | задача о перестановках | 全排列问题 |
| subset-sum problem | задача о сумме подмножеств | 子集和问题 |
| -queens problem | задача о ферзях | 皇后问题 |
动态规划(第 14 章):
| English | Русский | 简体中文 |
|---|---|---|
| dynamic programming | динамическое программирование | 动态规划 |
| initial state | начальное состояние | 初始状态 |
| state-transition equation | уравнение перехода состояния | 状态转移方程 |
| knapsack problem | задача о рюкзаке | 背包问题 |
| edit distance problem | задача о расстоянии редактирования | 编辑距离问题 |
贪心(第 15 章):
| English | Русский | 简体中文 |
|---|---|---|
| greedy algorithm | жадный алгоритм | 贪心算法 |
这 15 个术语对应 ru/codes/python/chapter_divide_and_conquer/(hanota.py 汉诺塔、binary_search_recur.py 递归二分、build_tree.py、fast_power.py)、ru/codes/python/chapter_backtracking/(permutations_i.py、subset_sum_i.py、n_queens.py 等)、ru/codes/python/chapter_dynamic_programming/(knapsack.py 0-1 背包、unbounded_knapsack.py 完全背包、edit_distance.py 编辑距离、climbing_stairs_dp.py 等)以及 ru/codes/python/chapter_greedy/(fractional_knapsack.py、max_capacity.py、max_product_cutting.py)。
三、术语组与仓库章节、代码目录的映射总览
原术语表的分组顺序与书籍章节顺序一致。下表把每个术语组映射到俄语版文档章节(导航配置见 ru/mkdocs.yml)与 Python 代码目录,其他语言(C、C++、C#、Dart、Go、Java、JavaScript、Kotlin、Ruby、Rust、Swift、TypeScript、Zig)代码位于平行的 ru/codes/ 子目录下,文件命名规则相同:
| 术语组 | 对应文档章节(ru/docs/ 下) | 对应代码目录(ru/codes/python/ 下) |
|---|---|---|
| 编程基础、复杂度分析、数值编码 | chapter_computational_complexity/、chapter_data_structure/ | chapter_computational_complexity/ |
| 数组、链表、内存与缓存 | chapter_array_and_linkedlist/ | chapter_array_and_linkedlist/ |
| 栈、队列、双向队列 | chapter_stack_and_queue/ | chapter_stack_and_queue/ |
| 哈希表 | chapter_hashing/ | chapter_hashing/ |
| 二叉树、遍历、平衡树 | chapter_tree/ | chapter_tree/ |
| 堆、优先队列、Top-k | chapter_heap/ | chapter_heap/ |
| 图与图遍历 | chapter_graph/ | chapter_graph/ |
| 查找、排序 | chapter_searching/、chapter_sorting/ | chapter_searching/、chapter_sorting/ |
| 分治与汉诺塔 | chapter_divide_and_conquer/ | chapter_divide_and_conquer/ |
| 回溯与三大经典问题 | chapter_backtracking/ | chapter_backtracking/ |
| 动态规划 | chapter_dynamic_programming/ | chapter_dynamic_programming/ |
| 贪心算法 | chapter_greedy/ | chapter_greedy/ |
从源码结构看,代码目录命名(chapter_*)与文档章节目录一一对应,术语表中的每一个术语都能在这条“文档章节 → 代码目录”链路中找到落点,这也是本书“动画图解 + 一键运行代码”设计思路的体现。
四、关键术语的源码级印证
4.1 负载因子、扩展与链地址法(load factor / separate chaining)
ru/codes/python/chapter_hashing/hash_map_chaining.py 的 HashMapChaining 类构造器直观给出了术语表中 load factor、bucket 等概念的工程定义(第 17~23 行):
def __init__(self):
"""构造器"""
self.size = 0 # 键值对数量
self.capacity = 4 # 哈希表容量
self.load_thres = 2.0 / 3.0 # 触发扩容的负载因子阈值
self.extend_ratio = 2 # 扩容系数
self.buckets = [[] for _ in range(self.capacity)] # 桶数组
即:size(已存键值对数)与 capacity(桶数量)之比就是负载因子,超过阈值 2/3 时按系数 2 扩容;buckets 数组中的每个桶是一个链表,正是 separate chaining(链地址法)术语在代码中的形态。
4.2 Top-k 问题与小顶堆(top- problem / min heap)
ru/codes/python/chapter_heap/top_k.py 的 top_k_heap 函数(第 16~29 行)演示了术语表中 top-k problem 与 min heap 的组合使用:
def top_k_heap(nums: list[int], k: int) -> list[int]:
"""利用堆找到数组中最大的 k 个元素"""
# 初始化最小堆
heap = []
# 将数组前 k 个元素放入堆中
for i in range(k):
heapq.heappush(heap, nums[i])
# 从第 k+1 个元素开始,维持堆的长度为 k
for i in range(k, len(nums)):
# 若当前元素大于堆顶元素,则弹出堆顶并压入当前元素
if nums[i] > heap[0]:
heapq.heappop(heap)
heapq.heappush(heap, nums[i])
return heap
其核心思想恰好串联起三个术语:用“小顶堆(min heap)”维持大小为 k 的窗口,堆顶即当前窗口最小值,配合 heapify(堆化,见 ru/codes/python/chapter_heap/my_heap.py 中的手写实现)完成 Top-k 问题求解。
4.3 树节点与图顶点结构(tree node / vertex)
术语表中 tree node、left-child node、right-child node 在 ru/codes/python/modules/tree_node.py 中对应含 val、left、right 字段的节点类;vertex、edge、in-degree、out-degree 则在 ru/codes/python/modules/vertex.py 与 chapter_graph 的邻接矩阵/邻接表实现中落地。这些通用模块集中在 ru/codes/python/modules/ 目录(另含 list_node.py、print_util.py),是各章节示例代码的公共依赖,可作为“术语 → 数据结构定义”的最短查证路径。
五、如何使用这份术语表
- 按英文索引记忆:遵循原文档的建议,以英文列为首要记忆单元(如
balance factor、state-transition equation),俄文与中文列作为语义校验。日常阅读英文文献、API 文档时,英文术语是检索入口。 - 术语 → 章节 → 代码三跳定位:遇到不熟悉的术语,先在第二节分组表中定位所属专题,再到第三节映射表找到对应
ru/docs/chapter_*章节文档,最后打开ru/codes/<语言>/chapter_*/下同名文件阅读实现,形成闭环。 - 运行验证:俄语版代码与主仓库代码结构一致,Python 版可通过各语言目录下的
test_all.py(如 ru/codes/python/test_all.py)批量运行示例,把静态术语转化为可观察的运行行为。 - 多语言对照:同一术语集合在 docs/chapter_appendix/terminology.md(简体中文)、ja/docs/chapter_appendix/terminology.md(日本語)中保持同步维护,若发现某条俄文译法与其他语言版本语义不一致,可对照英文原文列判定基准含义。
术语表本身不含代码,它是全书 12 个章节(第 2~15 章)知识点的词汇索引。掌握这 128 个术语的英文表达,并借助本文的章节与代码映射,读者可以在任意语言版本、任意编程语言的 hello-algo 代码库中快速定位与当前概念直接相关的文档段落和可运行实现。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0627
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00