Add summary for the chapters of introduction, hashing, heap, graph, sorting

This commit is contained in:
krahets
2023-02-26 22:47:21 +08:00
parent 1a49631dba
commit c2d641537e
15 changed files with 78 additions and 19 deletions

View File

@ -4,8 +4,7 @@
- 数组支持随机访问、内存空间占用小;但插入与删除元素效率低,且初始化后长度不可变。
- 链表可通过更改指针实现高效的结点插入与删除,并且可以灵活地修改长度;但结点访问效率低、占用内存多。常见的链表类型有单向链表、循环链表、双向链表。
- 列表又称动态数组,是基于数组实现的一种数据结构,其保存了数组的优势,且可以灵活改变长度。列表的出现大大提升了数组的实用性,但副作用是会造成部分内存空间浪费。
## 数组 VS 链表
- 下表总结对比了数组与链表的各项特性。
<div class="center-table" markdown>
@ -18,9 +17,11 @@
</div>
!!! tip
!!! question "缓存局部性的简单解释"
「缓存局部性Cache locality」涉及到了计算机操作系统在本书不做展开介绍建议有兴趣的同学 Google / Baidu 一下。
在计算机中,数据读写速度排序是“硬盘 < 内存 < CPU 缓存”。当我们访问数组元素时计算机不仅会加载它还会缓存其周围的其它数据从而借助高速缓存来提升后续操作的执行速度链表则不然计算机只能挨个地缓存各个结点这样的多次搬运降低了整体效率
- 下表对比了数组与链表的各种操作效率
<div class="center-table" markdown>