摘要:
平衡二叉树 平衡二叉树的背景 由于一些众所周知的原因, 我们选择了平衡二叉树, 好吧, 其实就是因为对二叉搜索树的限制太少了, 导致在一些特殊的情况下, 二叉搜索树不太听话, 查找, 插入与删除的时间均变成了 \(O(n)\) 也可以认为, 熵增就会更加有序, 熵减就会更加自由, 这里我们追求的是有 阅读全文
摘要:
B+树的定义 上一篇我们介绍了B树, B+树与B树最大的不同是, B+树所有的关键字都存储在叶子节点, 中间节点仅作为索引. 关于B+树的定义以及解释要比B树多很多, 可能这也是因为B+树在实际使用中要比B树广泛很多. 我这里直接参考了nullzx对B+树的定义以及视图, 我主要修改我的B树的代码实 阅读全文
摘要:
最近在做CMU的15445的数据库课程, 需要复习一些高级的数据结构. 记录了一些学习笔记. B树(B-Tree) B树实际上是从二叉平衡树衍生而来, B树的B是 Balanced Tree 的意思, 并不是二叉树的意思. 与传统的二叉搜索树不同, B树的特征是它们可以存储在单个节点中的大量键值对, 阅读全文
摘要:
可扩展Hash 可扩展Hash是结合了Hash算法的一种数据结构组织方法, 这种数据组织方式涉及到Hash函数, 目录映射存储地址, 使用Hash函数的结果作为地址下标的索引, 以及使用桶的方式存储键值对数据. 可扩展hash (Extendible Hashing ) 是一种动态 hash 方法. 阅读全文
摘要:
LRU_K 算法 LRU_K 算法是 LRU(最近最少使用算法) 与 LFU(使用频率最小算法的结合体) LRU-K Page Replacement Algorithm Definition Assume we are given a set \(N = {1, 2, . . . , n}\) o 阅读全文
摘要:
OPENCV 多线程机制调研 OPENCV 中的两种线程体 opencv 使用两种不同类型的线程体, 线程池自身ThreadPool作为主线程, 线程池内部管理工作线程 std::vector< Ptr<WorkerThread> > threads.. 主线程的任务是从任务池中选择任务, 将任务分 阅读全文
摘要:
这一个Project是让我们了解C++的语法以及改数据库项目的整体框架, 基本的锁的使用, 怎么Debug. 一些零碎的知识碎片我放到最后了, 以前是写C的, C++的很多语法还不是很熟悉, 很多新的语法更不知道该怎么用. 这次作业完成也是受益良多. Copy_on_Write 字典树 Copy_o 阅读全文
摘要:
# Valgrind 使用示例 在使用GDB 与 Valgrind 交互式调试的过程中, 程序本质上是运行在 Valgrind 的虚拟 CPU 上的, 而不是真实的CPU. 所以 Valgrind 不能和 Mesh 交互, Mesh 运行的时候,其他进程运行在真实 CPU 上,通过边车进行数据交互数 阅读全文
摘要:
CMU 15-445/645 Homework1 Q2 [5 points] (q2_sci_fi): Find the 10 Sci-Fi works with the longest runtimes. Details: Print the title of the work, the prem 阅读全文
摘要:
通过符号表 Debug 调试器中的符号表 Stabs 是程序的一种信息格式, 用于在调试器中描述程序. 在 GNU 中使用“ -g”选项,GCC在.s文件中放入其他调试信息,这些信息由汇编器和链接器稍作转换,并传递到最终的可执行文件中。这些调试信息描述了源文件的功能,例如行号,变量的类型和范围以及函 阅读全文