2020年5月20日
摘要: 拓扑排序只是一个定义,实现算法有多种,如先序遍历等,因此无需特作讲解。 阅读全文
posted @ 2020-05-20 19:18 此夜望月 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-05-20 19:16 此夜望月 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 无论是Prime算法还是Kruscal算法,得到的最小生成树整理后都如下图所示 阅读全文
posted @ 2020-05-20 19:13 此夜望月 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-05-20 19:09 此夜望月 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-05-20 19:07 此夜望月 阅读(152) 评论(0) 推荐(0) 编辑
摘要: B+树是针对数据库特点,对B树进行的改造。 B树构建:https://www.cnblogs.com/RambleIvy/p/12925459.html 相对B树,B+树的改动在于 1.非叶结点中的每一个key为子结点中最大的key值,因此非叶结点中的Pi数量与Ki数量相等。 2.所有的信息都存储在 阅读全文
posted @ 2020-05-20 19:05 此夜望月 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 字符串的操作有许多,其中定位子字符串在主串中的起始位置,是常用操作。而KMP则是此操作的常用优化算法 上述图示为算法思想,适合人工计算,但电脑的效率较低,以下贴出代码: //求next数组,T为主串 void getNext(String T,int[] next){ int i = 1,j = 0 阅读全文
posted @ 2020-05-20 19:03 此夜望月 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 这大概是能看到最简单的B树构建博客了,看这几幅图也应该能有思路手撕代码,作者就不再贴代码了,有需要的读者可自行实现。 阅读全文
posted @ 2020-05-20 19:01 此夜望月 阅读(169) 评论(0) 推荐(0) 编辑
  2019年10月11日
摘要: 此处暂不讲解基本分页的原理。记录一个问题:在一级页表中,为什么每个进程都需要分配一个页表,且各个页表都硕大无比? 首先,还是用大家熟悉的32位地址空间,单页表项4B为例。以2^20为页号,2^12为偏移地址。因此页表项应该有2^20约100万条,而单页大小为2^12=4KB,即单页可存放1K条页表项 阅读全文
posted @ 2019-10-11 05:15 此夜望月 阅读(877) 评论(0) 推荐(0) 编辑
  2019年8月26日
摘要: 双向链表相比于单向链表,所谓的O(1)是指删除、插入操作。 单向链表要删除某一节点时,必须要先通过遍历的方式找到前驱节点(通过待删除节点序号或按值查找)。若仅仅知道待删除节点,是不能知道前驱节点的,故单链表的增删操作复杂度为O(n)。 双链表(双向链表)知道要删除某一节点p时,获取其前驱节点q的方式 阅读全文
posted @ 2019-08-26 18:18 此夜望月 阅读(14098) 评论(1) 推荐(3) 编辑