initial commit

This commit is contained in:
Lostecho
2024-09-02 11:53:36 +08:00
commit cbac0ab8dd
565 changed files with 17862 additions and 0 deletions

89
pages/数据结构.md Normal file
View File

@@ -0,0 +1,89 @@
## 数据结构的分类
- [[数组与链表]]
- [[栈与队列]]
- ### 逻辑结构
- 线性结构
- [[数组]]
- [[链表]]
- [[栈]]
- [[队列]]
- [[哈希表]],元素之间一对一
- 非线性结构
- [[树]]
- [[堆]]
- [[图]]
- 哈希表
- 树形结构
-
-
- 哈希表,元素之间一对一
- 网状结构
- 图,元素之间多对多
- ### 物理结构
- [[算法]]运行时,处理的数据主要存储于内存中
- 系统通过内存地址来访问目标位置的数据
- 数据结构与算法的设计中,内存是一个重要的考虑因素
- 物理结构反映了数据在内存中的存储发昂是
- 连续空间存储(数组)
- 分散空间存储(链表)
- > 所有数据结构都是基于数组、链表或二者的组合实现的
- 基于数组
- 栈、队列、哈希表、树、堆、图、矩阵、张量维度大于等于3 的数组)
- 基于链表
- 栈、队列、哈希表、树、堆、图
- ## 基本数据类型
- > 基本数据类型是CPU可以直接进行运算的类型
- 整数类型
- byte
- short
- int
- long
- 浮点数类型
- float
- double
- 字符类型
- char
- 布尔类型
- bool
- 基本数据类型的占用空间和取值范围
- ![image.png](../assets/image_1717122359420_0.png)
- 基本数据类型提供了数据的”内容类型“,而数据结构提供了数据的组织方式
- ## 数字编码
- > 数字是以”补码“的形式存储在计算机中的
- 原码
- 数字的二进制最高为视为符号位0正1负其余表示数字的值
- 反码
- 对原码除符号位外所有数字取反
- 补码
- 正数的补码与原码相同负数的补码是在反码的基础上加1
- 浮点数 `32bit`
- 符号位S`1bit`
- 指数位E`8bit`
- E=0表示零
- E=255表示无穷大 NaN
- 分数位N`23bit`
- `float` 的表示方式包含指数位,导致其取值范围远大于 `int`
- id:: 6659374d-dfae-436f-af1d-3d1fdf513b37
> **尽管浮点数 `float` 扩展了取值范围,但其副作用是牺牲了精度**
- ## 字符编码
- ASICC字符集
- 共128个字符仅能表示英文
- GBK字符集
- GB2312字符集6763个汉字
- GBK字符集21886个汉字
- ASICC一个字节表示汉字两个字节表示
- Unicode字符集
- 多种语言,同一语言也有多种字符集
- 当多种长度的 Unicode 码点同时出现在一个文本中时,系统如何解析字符?
- 一种直接的解决方案是将所有字符存储为等长的编码
- UTF-8编码
- 可变长编码使用1-4字节表示一个字符
- 向下兼容ASICC编码
- UTF-16使用2-4字节表示一个字符
- UTF-32每个字符都使用4个字节表示
- 编程语言的字符编码
- 使用UTF-16或UTF-32编码
- 字符串可看成数组表示
- 随机访问
- 字符计数
- 字符串操作