@@ -1391,7 +1391,7 @@
-
- 11.1. 排序简介
+ 11.1. 排序简介
@@ -1405,7 +1405,7 @@
-
- 11.2. 冒泡排序
+ 11.2. 冒泡排序
@@ -1419,7 +1419,7 @@
-
- 11.3. 插入排序
+ 11.3. 插入排序
@@ -1433,7 +1433,7 @@
-
- 11.4. 快速排序
+ 11.4. 快速排序
@@ -1447,7 +1447,7 @@
-
- 11.5. 归并排序
+ 11.5. 归并排序
@@ -1461,7 +1461,7 @@
-
- 11.6. 小结
+ 11.6. 小结
@@ -1549,28 +1549,28 @@
-
- 4.1.1. 数组优点
+ 4.1.1. 数组优点
-
- 4.1.2. 数组缺点
+ 4.1.2. 数组缺点
-
- 4.1.3. 数组常用操作
+ 4.1.3. 数组常用操作
-
- 4.1.4. 数组典型应用
+ 4.1.4. 数组典型应用
@@ -1599,7 +1599,7 @@
-4.1. 数组
+4.1. 数组
「数组 Array」是一种将 相同类型元素 存储在 连续内存空间 的数据结构,将元素在数组中的位置称为元素的「索引 Index」。

Fig. 数组定义与存储方式
@@ -1679,7 +1679,7 @@
-4.1.1. 数组优点
+4.1.1. 数组优点
在数组中访问元素非常高效。这是因为在数组中,计算元素的内存地址非常容易。给定数组首个元素的地址、和一个元素的索引,利用以下公式可以直接计算得到该元素的内存地址,从而直接访问此元素。

Fig. 数组元素的内存地址计算
@@ -1798,7 +1798,7 @@
-4.1.2. 数组缺点
+4.1.2. 数组缺点
数组在初始化后长度不可变。由于系统无法保证数组之后的内存空间是可用的,因此数组长度无法扩展。而若希望扩容数组,则需新建一个数组,然后把原数组元素依次拷贝到新数组,在数组很大的情况下,这是非常耗时的。
-4.1.3. 数组常用操作
+4.1.3. 数组常用操作
数组遍历。以下介绍两种常用的遍历方法。
-4.1.4. 数组典型应用
+4.1.4. 数组典型应用
随机访问。如果我们想要随机抽取一些样本,那么可以用数组存储,并生成一个随机序列,根据索引实现样本的随机抽取。
二分查找。例如前文查字典的例子,我们可以将字典中的所有字按照拼音顺序存储在数组中,然后使用与日常查纸质字典相同的“翻开中间,排除一半”的方式,来实现一个查电子字典的算法。
深度学习。神经网络中大量使用了向量、矩阵、张量之间的线性代数运算,这些数据都是以数组的形式构建的。数组是神经网络编程中最常使用的数据结构。
@@ -2479,7 +2479,7 @@