摘要: #页表 一说到虚拟内存,第一时间一定要想到页表,它是真正保存着虚拟地址到物理地址映射关系的东西,没有它,一切无从谈起,关于它有两个重要的概念 * 这东西是每个进程一个的,由操作系统维护 * 它保存在内存中 页表里面就是一条一条的页表项,大概像这个样子 ```c + + + | valid | num 阅读全文
posted @ 2023-06-13 22:52 start-from-ling 阅读(69) 评论(0) 推荐(0) 编辑
摘要: #延迟 * 从书的p416了解到,2015年,SRAM的访问时间只需1.3ns,同时期,cpu主频为3Ghz,时钟周期约为0.33ns,因此SRAM访问一次大概需要4个时钟周期,而这,也差不多就是L1的访问延迟,L2大约10个时钟周期内,L3大约50个时钟周期内,这些数据可以在p425的表格和段落中 阅读全文
posted @ 2023-06-04 22:23 start-from-ling 阅读(39) 评论(0) 推荐(0) 编辑
摘要: #缘起 ![](https://img2023.cnblogs.com/blog/1518202/202305/1518202-20230523213912436-1569861776.jpg) 解包的时候发现数据包里面多了一层mpls,有时会有两层,一层是4字节,如果是多层,每一层里面会有一位,指 阅读全文
posted @ 2023-05-23 21:47 start-from-ling 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 基本概念 1. 散列是一种用于以常数平均时间执行插入、删除和查找的技术 2. 理想的散列表数据结构是一个包含有关键字的具有固定大小的数组,表的大小记作 ,习惯上使表从 到`TableSize 1 0`到 范围中的某个数并被放在合适的单元中,这个映射就叫散列函数 3. 当两个关键字散列到同一个值的时候 阅读全文
posted @ 2019-08-19 20:05 start-from-ling 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 概念和性质 1. 优先队列是允许至少下列两种操作的数据结构:插入(Insert)和删除最小者(DeleteMin) 2. 实现优先队列的数据结构叫二叉堆,他有两个性质,结构性(完全二叉树)和堆序性((min)堆或(max)堆),堆的操作必须要到堆的所有性质都被满足才能终止 3. 堆是一颗被完全填满的 阅读全文
posted @ 2019-08-16 20:26 start-from-ling 阅读(197) 评论(0) 推荐(0) 编辑
摘要: #快速排序 >最坏情形时间复杂度$\mathrm{O}(N^2)$ 平均运行时间$\mathrm{O}(NlogN)$ ```c++ //快速排序驱动程序 void QuickSort(int *a; int N) { Qsort(a, 0, N - 1); } //实现三数中值分割法的程序 int 阅读全文
posted @ 2019-08-14 23:00 start-from-ling 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 堆排序 时间复杂度$\mathrm{O}(NlogN)$ 1 堆排序先以$\mathrm{O}(N)$时间建立一个N个元素的二叉堆,然后执行N次DeleteMin操作,因为每个DeleteMin操作花费$\mathrm{O}(logN)$,所以总的运行时间是$\mathrm{O}(NlogN)$ 2 阅读全文
posted @ 2019-08-14 22:07 start-from-ling 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 希尔排序 初始 | 81| 94| 11| 96| 12| 35| 17| 95| 28| 58| 41| 75| 15 | | | | | | | | | | | | | 在5 排序后 | 35| 17| 11| 28| 12| 41| 75| 15| 96| 58| 81| 94| 95 在3 阅读全文
posted @ 2019-08-13 22:21 start-from-ling 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 测试代码 这是《C++ primer》 的题,主要就是为了测试派生类拷贝控制操作的行为,实验结果与预期相同 1 派生类的默认构造函数会先运行基类的默认构造函数,将基类中的数据成员初始化,然后执行自己的默认构造函数,将数据成员初始化 2 派生类使用拷贝构造函数时会先运行基类的拷贝构造函数,然后再运行自 阅读全文
posted @ 2019-04-22 14:36 start-from-ling 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 是什么 对于一个中缀表达式,在将其转化为逆波兰表达式后,计算就会显得很简便,从左至右,在遇到数字的时候就将其入栈,在遇到运算符的时候就将栈中的数字弹出进行运算,然后将运算结果再入栈,循环此过程直到末尾 转换 逆波兰表达式是根据中缀表达式转换得到的,具体转换如图 1 先用括号显示的表示所有运算符的优先 阅读全文
posted @ 2019-04-20 18:00 start-from-ling 阅读(167) 评论(0) 推荐(0) 编辑