pull/944/head
krahets 1 year ago
parent 002807358f
commit d13c40e11c

@ -31,10 +31,16 @@ comments: true
| 浮点数 | `float` | 4 bytes | $1.175 \times 10^{-38}$ | $3.403 \times 10^{38}$ | $0.0 f$ |
| | `double` | 8 bytes | $2.225 \times 10^{-308}$ | $1.798 \times 10^{308}$ | $0.0$ |
| 字符 | `char` | 2 bytes / 1 byte | $0$ | $2^{16} - 1$ | $0$ |
| 布尔 | `bool` | 1 byte / 1 bit | $\text{false}$ | $\text{true}$ | $\text{false}$ |
| 布尔 | `bool` | 1 byte | $\text{false}$ | $\text{true}$ | $\text{false}$ |
</div>
!!! tip
字符的占用空间大小取决于编程语言采用的字符编码方法,详见「字符编码」章节。
现代计算机 CPU 通常将 1 字节作为最小寻址内存单元。因此,即使表示布尔量仅需 1 位($0$ 或 $1$),它在内存中通常被存储为 1 字节。
那么,基本数据类型与数据结构之间有什么联系与区别呢?我们知道,数据结构是在计算机中组织与存储数据的方式。它的主语是“结构”,而非“数据”。如果想要表示“一排数字”,我们自然会想到使用数组。这是因为数组的线性结构可以表示数字的相邻关系和顺序关系,但至于存储的内容是整数 `int` 、小数 `float` 、还是字符 `char` ,则与“数据结构”无关。
换句话说,**基本数据类型提供了数据的“内容类型”,而数据结构提供了数据的“组织方式”**。如以下代码所示,我们可以使用不同基本数据类型来初始化数组。

@ -183,7 +183,7 @@ comments: true
## 11.2.1. &nbsp; 算法特性
- **时间复杂度为 $O(n^2)$ 、非自适应排序**:共 $n - 1$ 轮外循环分别包含 $n$ , $n - 1$ , $\cdots$ , $2$ , $1$ 轮内循环,求和为 $\frac{(n - 1)(n + 2)}{2}$ 。
- **时间复杂度为 $O(n^2)$ 、非自适应排序**外循环共 $n - 1$ 轮,第一轮的未排序区间长度为 $n$ ,最后一轮的未排序区间长度为 $2$ ,即各轮外循环分别包含 $n$ , $n - 1$ , $\cdots$ , $2$ 轮内循环,求和为 $\frac{(n - 1)(n + 2)}{2}$ 。
- **空间复杂度 $O(1)$ 、原地排序**:指针 $i$ , $j$ 使用常数大小的额外空间。
- **非稳定排序**:在交换元素时,有可能将 `nums[i]` 交换至其相等元素的右边,导致两者的相对顺序发生改变。

Loading…
Cancel
Save