Add the section of number encoding

and character encoding
This commit is contained in:
krahets
2023-05-17 04:38:32 +08:00
parent a60c7f148d
commit 7cfe6d7efe
14 changed files with 360 additions and 221 deletions

View File

@@ -15,11 +15,17 @@
## 物理结构:连续与离散
!!! note
在计算机中,内存和硬盘是两种主要的存储硬件设备。「硬盘」主要用于长期存储数据,容量较大(通常可达到 TB 级别)、速度较慢。「内存」用于运行程序时暂存数据,速度较快,但容量较小(通常为 GB 级别)。
如若阅读起来有困难,建议先阅读下一章“数组与链表”,然后再回头理解物理结构的含义
**在算法运行过程中,相关数据都存储在内存中**。下图展示了一个计算机内存条,其中每个黑色方块都包含一块内存空间。我们可以将内存想象成一个巨大的 Excel 表格,其中每个单元格都可以存储 1 byte 的数据,在算法运行时,所有数据都被存储在这些单元格中
**「物理结构」体现了数据在计算机内存中的存储方式**,可以分为数组的连续空间存储和链表的离散空间存储。物理结构从底层决定了数据的访问、更新、增删等操作方法,同时在时间效率和空间效率方面呈现出互补的特点
**系统通过「内存地址 Memory Location」来访问目标内存位置的数据**。计算机根据特定规则为表格中的每个单元格分配编号,确保每个内存空间都有唯一的内存地址。有了这些地址,程序便可以访问内存中的数据
![内存条、内存空间、内存地址](classification_of_data_structure.assets/computer_memory_location.png)
内存是所有程序的共享资源,当内存被某个程序占用时,其他程序无法同时使用。**因此,在数据结构与算法的设计中,内存资源是一个重要的考虑因素**。例如,算法所占用的内存峰值不应超过系统剩余空闲内存;如果运行的程序很多并且缺少大量连续的内存空间,那么所选用的数据结构必须能够存储在离散的内存空间内。
**「物理结构」反映了数据在计算机内存中的存储方式**,可分为数组的连续空间存储和链表的离散空间存储。物理结构从底层决定了数据的访问、更新、增删等操作方法,同时在时间效率和空间效率方面呈现出互补的特点。
![连续空间存储与离散空间存储](classification_of_data_structure.assets/classification_phisical_structure.png)
@@ -32,4 +38,4 @@
!!! tip
数组与链表是其他所有数据结构的“底层积木”,建议读者投入更多时间深入了解这两种基本数据结构。
如若感觉理解物理结构有困难,建议先阅读下一章“数组与链表”,然后再回头理解物理结构的含义。数组与链表是其他所有数据结构的基石,建议投入更多时间深入了解这两种基本数据结构。