mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-05 11:41:22 +08:00
Unify punctuation.
This commit is contained in:
@@ -4,15 +4,15 @@
|
||||
|
||||
**基本数据类型是 CPU 可以直接进行运算的类型,在算法中直接被使用**。它包括:
|
||||
|
||||
- 整数类型 `byte` , `short` , `int` , `long` ;
|
||||
- 浮点数类型 `float` , `double` ,用于表示小数;
|
||||
- 字符类型 `char` ,用于表示各种语言的字母、标点符号、甚至表情符号等;
|
||||
- 布尔类型 `bool` ,用于表示“是”与“否”判断;
|
||||
- 整数类型 `byte` , `short` , `int` , `long` 。
|
||||
- 浮点数类型 `float` , `double` ,用于表示小数。
|
||||
- 字符类型 `char` ,用于表示各种语言的字母、标点符号、甚至表情符号等。
|
||||
- 布尔类型 `bool` ,用于表示“是”与“否”判断。
|
||||
|
||||
**所有基本数据类型都以二进制的形式存储在计算机中**。在计算机中,我们将 $1$ 个二进制位称为 $1$ 比特,并规定 $1$ 字节(byte)由 $8$ 比特(bits)组成。基本数据类型的取值范围取决于其占用的空间大小,例如:
|
||||
|
||||
- 整数类型 `byte` 占用 $1$ byte = $8$ bits ,可以表示 $2^{8}$ 个不同的数字;
|
||||
- 整数类型 `int` 占用 $4$ bytes = $32$ bits ,可以表示 $2^{32}$ 个数字;
|
||||
- 整数类型 `byte` 占用 $1$ byte = $8$ bits ,可以表示 $2^{8}$ 个不同的数字。
|
||||
- 整数类型 `int` 占用 $4$ bytes = $32$ bits ,可以表示 $2^{32}$ 个数字。
|
||||
|
||||
下表列举了各种基本数据类型的占用空间、取值范围和默认值。此表格无需硬背,大致理解即可,需要时可以通过查表来回忆。
|
||||
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
逻辑结构通常分为“线性”和“非线性”两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线性结构则相反,呈非线性排列。
|
||||
|
||||
- **线性数据结构**:数组、链表、栈、队列、哈希表;
|
||||
- **非线性数据结构**:树、堆、图、哈希表;
|
||||
- **线性数据结构**:数组、链表、栈、队列、哈希表。
|
||||
- **非线性数据结构**:树、堆、图、哈希表。
|
||||
|
||||

|
||||
|
||||
非线性数据结构可以进一步被划分为树形结构和网状结构。
|
||||
|
||||
- **线性结构**:数组、链表、队列、栈、哈希表,元素存在一对一的顺序关系;
|
||||
- **树形结构**:树、堆、哈希表,元素存在一对多的关系;
|
||||
- **网状结构**:图,元素存在多对多的关系;
|
||||
- **线性结构**:数组、链表、队列、栈、哈希表,元素存在一对一的顺序关系。
|
||||
- **树形结构**:树、堆、哈希表,元素存在一对多的关系。
|
||||
- **网状结构**:图,元素存在多对多的关系。
|
||||
|
||||
## 物理结构:连续与离散
|
||||
|
||||
@@ -37,8 +37,8 @@
|
||||
|
||||
**所有数据结构都是基于数组、链表或二者的组合实现的**。例如,栈和队列既可以使用数组实现,也可以使用链表实现;而哈希表的实现可能同时包含数组和链表。
|
||||
|
||||
- **基于数组可实现**:栈、队列、哈希表、树、堆、图、矩阵、张量(维度 $\geq 3$ 的数组)等;
|
||||
- **基于链表可实现**:栈、队列、哈希表、树、堆、图等;
|
||||
- **基于数组可实现**:栈、队列、哈希表、树、堆、图、矩阵、张量(维度 $\geq 3$ 的数组)等。
|
||||
- **基于链表可实现**:栈、队列、哈希表、树、堆、图等。
|
||||
|
||||
基于数组实现的数据结构也被称为“静态数据结构”,这意味着此类数据结构在初始化后长度不可变。相对应地,基于链表实现的数据结构被称为“动态数据结构”,这类数据结构在初始化后,仍可以在程序运行过程中对其长度进行调整。
|
||||
|
||||
|
||||
@@ -90,9 +90,9 @@ $$
|
||||
|
||||
实际上,这是因为浮点数 `float` 采用了不同的表示方式。根据 IEEE 754 标准,32-bit 长度的 `float` 由以下部分构成:
|
||||
|
||||
- 符号位 $\mathrm{S}$ :占 1 bit ;
|
||||
- 指数位 $\mathrm{E}$ :占 8 bits ;
|
||||
- 分数位 $\mathrm{N}$ :占 24 bits ,其中 23 位显式存储;
|
||||
- 符号位 $\mathrm{S}$ :占 1 bit 。
|
||||
- 指数位 $\mathrm{E}$ :占 8 bits 。
|
||||
- 分数位 $\mathrm{N}$ :占 24 bits ,其中 23 位显式存储。
|
||||
|
||||
设 32-bit 二进制数的第 $i$ 位为 $b_i$ ,则 `float` 值的计算方法定义为:
|
||||
|
||||
@@ -141,7 +141,7 @@ $$
|
||||
|
||||
特别地,次正规数显著提升了浮点数的精度,这是因为:
|
||||
|
||||
- 最小正正规数为 $2^{-126} \approx 1.18 \times 10^{-38}$ ;
|
||||
- 最小正次正规数为 $2^{-126} \times 2^{-23} \approx 1.4 \times 10^{-45}$ ;
|
||||
- 最小正正规数为 $2^{-126} \approx 1.18 \times 10^{-38}$ 。
|
||||
- 最小正次正规数为 $2^{-126} \times 2^{-23} \approx 1.4 \times 10^{-45}$ 。
|
||||
|
||||
双精度 `double` 也采用类似 `float` 的表示方法,此处不再详述。
|
||||
|
||||
Reference in New Issue
Block a user