This commit is contained in:
krahets
2024-02-04 22:41:47 +08:00
parent 84520801e2
commit 22974527a5
8 changed files with 145 additions and 115 deletions

View File

@ -13,62 +13,66 @@ status: new
| 中文 | English | 中文 | English |
| -------------- | ------------------------------ | -------------- | --------------------------- |
| 算法 | algorithm | 层序遍历 | level-order traversal |
| 数据结构 | data structure | 广度优先遍历 | breadth-first traversal |
| 渐近复杂度分析 | asymptotic complexity analysis | 深度优先遍历 | depth-first traversal |
| 时间复杂度 | time complexity | 二叉搜索树 | binary search tree |
| 空间复杂度 | space complexity | 平衡二叉搜索树 | balanced binary search tree |
| 迭代 | iteration | 平衡因子 | balance factor |
| 递归 | recursion | 堆 | heap |
| 尾递归 | tail recursion | 大顶堆 | max heap |
| 递归树 | recursion tree | 小顶| min heap |
| 大 $O$ 记号 | big-$O$ notation | 优先队列 | priority queue |
| 渐近上界 | asymptotic upper bound | 堆 | heapify |
| 原码 | sign-magnitude | | graph |
| 反码 | 1s complement | 顶点 | vertex |
| 补码 | 2s complement | 无向图 | undirected graph |
| 数组 | array | 有向| directed graph |
| 索引 | index | 连通图 | connected graph |
| 链表 | linked list | 非连通图 | disconnected graph |
| 链表节点 | linked list node, list node | 有图 | weighted graph |
| 列表 | list | 邻接 | adjacency |
| 动态数组 | dynamic array | 路径 | path |
| 硬盘 | hard disk | 入度 | in-degree |
| 内存 | random-access memory (RAM) | 出度 | out-degree |
| 缓存 | cache memory | 邻接矩阵 | adjacency matrix |
| 缓存未命中 | cache miss | 邻接表 | adjacency list |
| 缓存命中率 | cache hit rate | 广度优先搜索 | breadth-first search |
| 栈 | stack | 深度优先搜索 | depth-first search |
| 队列 | queue | 二分查找 | binary search |
| 双向队列 | double-ended queue | 搜索算法 | searching algorithm |
| 哈希表 | hash table | 排序算法 | sorting algorithm |
| | bucket | 选择排序 | selection sort |
| 哈希函数 | hash function | 冒泡排序 | bubble sort |
| 哈希冲突 | hash collision | 插入排序 | insertion sort |
| 负载因子 | load factor | 快速排序 | quick sort |
| 链式地址 | separate chaining | 归并排序 | merge sort |
| 开放寻址 | open addressing | 堆排序 | heap sort |
| 线性探测 | linear probing | 排序 | bucket sort |
| 懒删除 | lazy deletion | 计数排序 | counting sort |
| 二叉树 | binary tree | 基数排序 | radix sort |
| 树节点 | tree node | 分治 | divide and conquer |
| 左子节点 | left-child node | 汉诺塔问题 | hanota problem |
| 右子节点 | right-child node | 回溯算法 | backtracking algorithm |
| 父节点 | parent node | 约束 | constraint |
| 左子树 | left subtree | 解 | solution |
| 右子树 | right subtree | 状态 | state |
| 节点 | root node | 剪枝 | pruning |
| 叶节点 | leaf node | 全排列问题 | permutations problem |
| | edge | 子集和问题 | subset-sum problem |
| | level | n 皇后问题 | n-queens problem |
| | degree | 动态规划 | dynamic programming |
| 高度 | height | 初始状态 | initial state |
| 深度 | depth | 状态转移方程 | state-trasition equation |
| 完美二叉树 | perfect binary tree | 背包问题 | knapsack problem |
| 完全二叉树 | complete binary tree | 编辑距离问题 | edit distance problem |
| 完满二叉树 | full binary tree | 贪心算法 | greedy algorithm |
| 算法 | algorithm | AVL 树 | AVL tree |
| 数据结构 | data structure | 红黑树 | red-black tree |
| 渐近复杂度分析 | asymptotic complexity analysis | 层序遍历 | level-order traversal |
| 时间复杂度 | time complexity | 广度优先遍历 | breadth-first traversal |
| 空间复杂度 | space complexity | 深度优先遍历 | depth-first traversal |
| 迭代 | iteration | 二叉搜索树 | binary search tree |
| 递归 | recursion | 平衡二叉搜索树 | balanced binary search tree |
| 尾递归 | tail recursion | 平衡因子 | balance factor |
| 递归树 | recursion tree | 堆 | heap |
| 大 $O$ 记号 | big-$O$ notation | 大顶堆 | max heap |
| 渐近上界 | asymptotic upper bound | 小顶| min heap |
| 原码 | sign-magnitude | 优先队列 | priority queue |
| 反码 | 1s complement | 堆化 | heapify |
| 补码 | 2s complement | Top-$k$ 问题 | Top-$k$ problem |
| 数组 | array | 图 | graph |
| 索引 | index | 顶点 | vertex |
| 链表 | linked list | 无向图 | undirected graph |
| 链表节点 | linked list node, list node | 有图 | directed graph |
| 头节点 | head node | 连通图 | connected graph |
| 尾节点 | tail node | 非连通图 | disconnected graph |
| 列表 | list | 有权图 | weighted graph |
| 动态数组 | dynamic array | 邻接 | adjacency |
| 硬盘 | hard disk | 路径 | path |
| 内存 | random-access memory (RAM) | 入度 | in-degree |
| 缓存 | cache memory | 出度 | out-degree |
| 缓存未命中 | cache miss | 邻接矩阵 | adjacency matrix |
| 缓存命中率 | cache hit rate | 邻接表 | adjacency list |
| | stack | 广度优先搜索 | breadth-first search |
| 栈顶 | top of the stack | 深度优先搜索 | depth-first search |
| 栈底 | bottom of the stack | 二分查找 | binary search |
| 队列 | queue | 搜索算法 | searching algorithm |
| 双向队列 | double-ended queue | 排序算法 | sorting algorithm |
| 队首 | front of the queue | 选择排序 | selection sort |
| 队尾 | rear of the queue | 冒泡排序 | bubble sort |
| 哈希表 | hash table | 插入排序 | insertion sort |
| | bucket | 快速排序 | quick sort |
| 哈希函数 | hash function | 归并排序 | merge sort |
| 哈希冲突 | hash collision | 堆排序 | heap sort |
| 负载因子 | load factor | 桶排序 | bucket sort |
| 链式地址 | separate chaining | 计数排序 | counting sort |
| 开放寻址 | open addressing | 基数排序 | radix sort |
| 线性探测 | linear probing | 分治 | divide and conquer |
| 懒删除 | lazy deletion | 汉诺塔问题 | hanota problem |
| 二叉树 | binary tree | 回溯算法 | backtracking algorithm |
| 节点 | tree node | 约束 | constraint |
| 左子节点 | left-child node | 解 | solution |
| 右子节点 | right-child node | 状态 | state |
| 父节点 | parent node | 剪枝 | pruning |
| 左子树 | left subtree | 全排列问题 | permutations problem |
| 右子树 | right subtree | 子集和问题 | subset-sum problem |
| 根节点 | root node | n 皇后问题 | n-queens problem |
| 叶节点 | leaf node | 动态规划 | dynamic programming |
| 边 | edge | 初始状态 | initial state |
| 层 | level | 状态转移方程 | state-trasition equation |
| 度 | degree | 背包问题 | knapsack problem |
| 高度 | height | 编辑距离问题 | edit distance problem |
| 深度 | depth | 贪心算法 | greedy algorithm |
| 完美二叉树 | perfect binary tree | | |
| 完全二叉树 | complete binary tree | | |
| 完满二叉树 | full binary tree | | |
| 平衡二叉树 | balanced binary tree | | |
| AVL 树 | AVL tree | | |
| 红黑树 | red-black tree | | |
</div>

View File

@ -19,11 +19,11 @@ icon: material/book-open-outline
两年前,我在力扣上分享了“剑指 Offer”系列题解受到了许多读者的鼓励和支持。在与读者交流期间我最常被问的一个问题是“如何入门算法”。逐渐地我对这个问题产生了浓厚的兴趣。
两眼一抹黑地刷题似乎是最受欢迎的方法,简单、直接且有效。然而刷题就如同玩“扫雷”游戏,自学能力强的人能够顺利将地雷逐个排掉,而基础不足的人很可能被得满头是包,并在挫折中步步退缩。通读教材也是一种常见做法,但对于面向求职的人来说,毕业论文、投递简历、准备笔试和面试已经消耗了大部分精力,啃厚重的书往往变成了一项艰巨的挑战。
两眼一抹黑地刷题似乎是最受欢迎的方法,简单、直接且有效。然而刷题就如同玩“扫雷”游戏,自学能力强的人能够顺利将地雷逐个排掉,而基础不足的人很可能被得满头是包,并在挫折中步步退缩。通读教材也是一种常见做法,但对于面向求职的人来说,毕业论文、投递简历、准备笔试和面试已经消耗了大部分精力,啃厚重的书往往变成了一项艰巨的挑战。
如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer但会引导你探索数据结构与算法的“知识地图”带你了解不同“地雷”的形状、大小和分布位置让你掌握各种“排雷方法”。有了这些本领相信你可以更加自如地刷题和阅读文献逐步构建起完整的知识体系。
我深深赞同费曼教授所言“Knowledge isnt free. You have to pay attention.”从这个意义上看,这本书并非完全“免费”。为了不辜负你为本书所付出的宝贵“注意力”,我会竭尽所能,投入最大的“注意力”来完成本书的创作。
我深深赞同费曼教授所言“Knowledge isn't free. You have to pay attention.”从这个意义上看,这本书并非完全“免费”。为了不辜负你为本书所付出的宝贵“注意力”,我会竭尽所能,投入最大的“注意力”来完成本书的创作。
## 本章内容

View File

@ -4,16 +4,18 @@
[2] Aditya Bhargava. Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People (1st Edition).
[3] 严蔚敏. 数据结构C 语言版).
[3] Robert Sedgewick, et al. Algorithms (4th Edition).
[4] 邓俊辉. 数据结构C++ 语言版,第三版.
[4] 严蔚敏. 数据结构C 语言版).
[5] 马克 艾伦 维斯著,陈越译. 数据结构与算法分析Java语言描述第三版).
[5] 邓俊辉. 数据结构C++ 语言版,第三版).
[6] 程杰. 大话数据结构.
[6] 马克 艾伦 维斯著,陈越译. 数据结构与算法分析Java语言描述第三版.
[7] 王争. 数据结构与算法之美.
[7] 程杰. 大话数据结构.
[8] Gayle Laakmann McDowell. Cracking the Coding Interview: 189 Programming Questions and Solutions (6th Edition).
[8] 王争. 数据结构与算法之美.
[9] Aston Zhang, et al. Dive into Deep Learning.
[9] Gayle Laakmann McDowell. Cracking the Coding Interview: 189 Programming Questions and Solutions (6th Edition).
[10] Aston Zhang, et al. Dive into Deep Learning.

View File

@ -1,5 +1,5 @@
---
comments: true
comments: false
glightbox: false
hide:
- footer
@ -266,7 +266,7 @@ hide:
<div class="profile-div">
<div class="profile-cell">
<a href="https://github.com/krahets">
<img class="profile-img" src="https://avatars.githubusercontent.com/u/26993056?v=4" alt="krahets" />
<img class="profile-img" src="assets/avatar/avatar_yudongjin.jpg" alt="yudongjin" />
<br><b>靳宇栋(@krahets</b>
</a>
</div>
@ -279,63 +279,63 @@ hide:
<div class="profile-div">
<div class="profile-cell">
<a href="https://github.com/codingonion">
<img class="profile-img" src="https://avatars.githubusercontent.com/u/99076655?v=4" alt="codingonion" />
<img class="profile-img" src="assets/avatar/avatar_codingonion.jpg" alt="codingonion" />
<br><b>codingonion</b>
<br><sub>Zig, Rust</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/Gonglja">
<img class="profile-img" src="https://avatars.githubusercontent.com/u/39959756?v=4" alt="Gonglja" />
<img class="profile-img" src="assets/avatar/avatar_Gonglja.jpg" alt="Gonglja" />
<br><b>Gonglja</b>
<br><sub>C, C++</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/gvenusleo">
<img class="profile-img" src="https://avatars.githubusercontent.com/u/79075347?v=4" alt="gvenusleo" />
<img class="profile-img" src="assets/avatar/avatar_gvenusleo.jpg" alt="gvenusleo" />
<br><b>gvenusleo</b>
<br><sub>Dart</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/hpstory">
<img class="profile-img" src="https://avatars.githubusercontent.com/u/33348162?v=4" alt="hpstory" />
<img class="profile-img" src="assets/avatar/avatar_hpstory.jpg" alt="hpstory" />
<br><b>hpstory</b>
<br><sub>C#</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/justin-tse">
<img class="profile-img" src="https://avatars.githubusercontent.com/u/24556310?v=4" alt="justin-tse" />
<img class="profile-img" src="assets/avatar/avatar_justin-tse.jpg" alt="justin-tse" />
<br><b>justin-tse</b>
<br><sub>JS, TS</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/krahets">
<img class="profile-img" src="https://avatars.githubusercontent.com/u/26993056?v=4" alt="krahets" />
<img class="profile-img" src="assets/avatar/avatar_krahets.jpg" alt="krahets" />
<br><b>krahets</b>
<br><sub>Python, Java</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/night-cruise">
<img class="profile-img" src="https://avatars.githubusercontent.com/u/77157236?v=4" alt="night-cruise" />
<img class="profile-img" src="assets/avatar/avatar_night-cruise.jpg" alt="night-cruise" />
<br><b>night-cruise</b>
<br><sub>Rust</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/nuomi1">
<img class="profile-img" src="https://avatars.githubusercontent.com/u/3739017?v=4" alt="nuomi1" />
<img class="profile-img" src="assets/avatar/avatar_nuomi1.jpg" alt="nuomi1" />
<br><b>nuomi1</b>
<br><sub>Swift</sub>
</a>
</div>
<div class="profile-cell">
<a href="https://github.com/Reanon">
<img class="profile-img" src="https://avatars.githubusercontent.com/u/22005836?v=4" alt="Reanon" />
<img class="profile-img" src="assets/avatar/avatar_Reanon.jpg" alt="Reanon" />
<br><b>Reanon</b>
<br><sub>Go, C</sub>
</a>
@ -352,4 +352,28 @@ hide:
</a>
</div>
</div>
</section>
<section data-md-color-scheme="default" data-md-color-primary="white" class="home-div">
<div class="section-content giscus-container">
<p>欢迎在评论区留下你的见解、问题或建议</p>
<!-- Insert generated snippet here -->
<script
src="https://giscus.app/client.js"
data-repo="krahets/hello-algo"
data-repo-id="R_kgDOIXtSqw"
data-category="Announcements"
data-category-id="DIC_kwDOIXtSq84CSZk_"
data-mapping="pathname"
data-strict="1"
data-reactions-enabled="1"
data-emit-metadata="0"
data-input-position="top"
data-theme="light"
data-lang="zh-CN"
crossorigin="anonymous"
async
>
</script>
</div>
</section>