Adding the chapter of hello_algo and bug fixes (#1217)

* Add the chapter of hello_algo

* Remove the comment field from the landing page

* Update the link in the landing page

* Fix a typo

* Bug fiixes

* Fix the bug of underlined terms

* Fix the format of English terms

* Fix "静态数据结构" vs.  "动态数据结构" in classification_of_data_structure.md
pull/1206/head
Yudong Jin 8 months ago committed by GitHub
parent 043085d0ea
commit 5e2eef0b4d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -4,19 +4,19 @@
## ASCII 字符集
<u>ASCII(码)</u>是最早出现的字符集,其全称为 American Standard Code for Information Interchange美国标准信息交换代码。它使用 7 位二进制数(一个字节的低 7 位)表示一个字符,最多能够表示 128 个不同的字符。如下图所示ASCII 码包括英文字母的大小写、数字 0 ~ 9、一些标点符号以及一些控制字符如换行符和制表符
<u>ASCII</u>是最早出现的字符集,其全称为 American Standard Code for Information Interchange美国标准信息交换代码。它使用 7 位二进制数(一个字节的低 7 位)表示一个字符,最多能够表示 128 个不同的字符。如下图所示ASCII 码包括英文字母的大小写、数字 0 ~ 9、一些标点符号以及一些控制字符如换行符和制表符
![ASCII 码](character_encoding.assets/ascii_table.png)
然而,**ASCII 码仅能够表示英文**。随着计算机的全球化,诞生了一种能够表示更多语言的<u>EASCII</u>字符集。它在 ASCII 的 7 位基础上扩展到 8 位,能够表示 256 个不同的字符。
然而,**ASCII 码仅能够表示英文**。随着计算机的全球化,诞生了一种能够表示更多语言的 <u>EASCII</u> 字符集。它在 ASCII 的 7 位基础上扩展到 8 位,能够表示 256 个不同的字符。
在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。
## GBK 字符集
后来人们发现,**EASCII 码仍然无法满足许多语言的字符数量要求**。比如汉字有近十万个,光日常使用的就有几千个。中国国家标准总局于 1980 年发布了<u>GB2312</u>字符集,其收录了 6763 个汉字,基本满足了汉字的计算机处理需要。
后来人们发现,**EASCII 码仍然无法满足许多语言的字符数量要求**。比如汉字有近十万个,光日常使用的就有几千个。中国国家标准总局于 1980 年发布了 <u>GB2312</u> 字符集,其收录了 6763 个汉字,基本满足了汉字的计算机处理需要。
然而GB2312 无法处理部分罕见字和繁体字。<u>GBK</u>字符集是在 GB2312 的基础上扩展得到的,它共收录了 21886 个汉字。在 GBK 的编码方案中ASCII 字符使用一个字节表示,汉字使用两个字节表示。
然而GB2312 无法处理部分罕见字和繁体字。<u>GBK</u> 字符集是在 GB2312 的基础上扩展得到的,它共收录了 21886 个汉字。在 GBK 的编码方案中ASCII 字符使用一个字节表示,汉字使用两个字节表示。
## Unicode 字符集
@ -24,7 +24,7 @@
那个时代的研究人员就在想:**如果推出一个足够完整的字符集,将世界范围内的所有语言和符号都收录其中,不就可以解决跨语言环境和乱码问题了吗**?在这种想法的驱动下,一个大而全的字符集 Unicode 应运而生。
<u>Unicode</u>的中文名称为“统一码”,理论上能容纳 100 多万个字符。它致力于将全球范围内的字符纳入统一的字符集之中,提供一种通用的字符集来处理和显示各种语言文字,减少因为编码标准不同而产生的乱码问题。
<u>Unicode</u> 的中文名称为“统一码”,理论上能容纳 100 多万个字符。它致力于将全球范围内的字符纳入统一的字符集之中,提供一种通用的字符集来处理和显示各种语言文字,减少因为编码标准不同而产生的乱码问题。
自 1991 年发布以来Unicode 不断扩充新的语言与字符。截至 2022 年 9 月Unicode 已经包含 149186 个字符,包括各种语言的字符、符号甚至表情符号等。在庞大的 Unicode 字符集中,常用的字符占用 2 字节,有些生僻的字符占用 3 字节甚至 4 字节。

@ -41,7 +41,7 @@
- **基于数组可实现**:栈、队列、哈希表、树、堆、图、矩阵、张量(维度 $\geq 3$ 的数组)等。
- **基于链表可实现**:栈、队列、哈希表、树、堆、图等。
基于数组实现的数据结构也称“静态数据结构”,这意味着此类数据结构在初始化后长度不可变。相对应地,基于链表实现的数据结构也称“动态数据结构”,这类数据结构在初始化后,仍可以在程序运行过程中对其长度进行调整
链表在初始化后,仍可以在程序运行过程中对其长度进行调整,因此也称“动态数据结构”。数组在初始化后长度不可变,因此也称“静态数据结构”。值得注意的是,数组可通过重新分配内存实现长度变化,从而具备一定的“动态性”
!!! tip

@ -93,7 +93,7 @@ $$
根据以上内容,我们可以总结出动态规划的常用术语。
- 将数组 `dp` 称为<u>$dp$(表)</u>$dp[i]$ 表示状态 $i$ 对应子问题的解。
- 将数组 `dp` 称为 <u>dp 表</u>$dp[i]$ 表示状态 $i$ 对应子问题的解。
- 将最小子问题对应的状态(第 $1$ 阶和第 $2$ 阶楼梯)称为<u>初始状态</u>
- 将递推公式 $dp[i] = dp[i-1] + dp[i-2]$ 称为<u>状态转移方程</u>

@ -10,7 +10,7 @@
![AVL 树在插入节点后发生退化](avl_tree.assets/avltree_degradation_from_inserting_node.png)
1962 年 G. M. Adelson-Velsky 和 E. M. Landis 在论文“An algorithm for the organization of information”中提出了<u>AVL</u>。论文中详细描述了一系列操作确保在持续添加和删除节点后AVL 树不会退化,从而使得各种操作的时间复杂度保持在 $O(\log n)$ 级别。换句话说在需要频繁进行增删查改操作的场景中AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。
1962 年 G. M. Adelson-Velsky 和 E. M. Landis 在论文“An algorithm for the organization of information”中提出了 <u>AVL 树</u>。论文中详细描述了一系列操作确保在持续添加和删除节点后AVL 树不会退化,从而使得各种操作的时间复杂度保持在 $O(\log n)$ 级别。换句话说在需要频繁进行增删查改操作的场景中AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。
## AVL 树常见术语

@ -77,7 +77,7 @@ extra:
social:
- icon: fontawesome/brands/github
link: https://github.com/krahets
- icon: fontawesome/brands/twitter
- icon: fontawesome/brands/x-twitter
link: https://twitter.com/krahets
- icon: fontawesome/solid/code
link: https://leetcode.cn/u/jyd/

Loading…
Cancel
Save