摘要: B+树索引文件 B+s树采用平衡树的结构,根到叶的每条路径长度相同,每个非叶结点有 $\left \lceil n/2 \right \rceil$ ~ $n$个指针 如图,对于一个包含m个指针的结点($m \leq n$)有$K_{i 1} \leq val(P_i) V$,则将当前结点设置为$P 阅读全文
posted @ 2019-07-17 18:50 qbits 阅读(1883) 评论(0) 推荐(0) 编辑
摘要: + "TCP 的那些事儿(上)" + "TCP 的那些事儿(下)" 阅读全文
posted @ 2019-07-16 16:21 qbits 阅读(165) 评论(0) 推荐(0) 编辑
摘要: HTTP/1.1 网上关于HTTP/1.1的讨论多是基于RFC2616文档,而IETF已更新了HTTP/1.1并将其分为六个部分,使协议变得更简单易懂,对老版本RFC2616中模糊不清的部分做了解释 + RFC7230 消息语法与路由 + RFC7231 语义与路由 + RFC7232 条件请求 + 阅读全文
posted @ 2019-07-15 23:55 qbits 阅读(2452) 评论(0) 推荐(0) 编辑
摘要: "OSI wiki" "OSI" "网络7层协议,4层,5层?理清容易混淆的几个概念" 流量控制与拥塞控制 拥塞控制: 慢开始(指数增长到阈值),拥塞避免(阈值加性增加) 出现拥塞时新阈值为当前窗口的一半,如果不使用快速重传,窗口减小为1,重复慢开始 若使用快速重传,当收到3个重复确认时,使用快速恢 阅读全文
posted @ 2019-07-12 11:16 qbits 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 同时找到最大值与最小值 找到n个元素中的最大/小值,比较次数为n 1, 找到n个元素中的最大值和最小值,可以Two Pass,比较次数为2n 2 也可以One Pass, 比较次数至多为 $\left \lfloor 3n/2 \right \rfloor$ 首先对最大值和最小值进行初始化,n为奇数 阅读全文
posted @ 2019-07-11 17:49 qbits 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 数据库并发会引发的问题 + 脏读(dirty read):A事务读取B事务尚未提交的更改数据,并在这个数据基础上操作。如果B事务回滚,那么A事务读到的数据根本不是合法的,称为脏读。在oracle中,由于有version控制,不会出现脏读 + 不可重复读(unrepeatable read):A事务读 阅读全文
posted @ 2019-07-11 10:40 qbits 阅读(3051) 评论(2) 推荐(0) 编辑
摘要: 二叉搜索树的最近公共祖先 假如p, q在root同一侧,则继续递归这一侧,否则返回当前节点(可能当前节点为p,q之一,也可能在不同侧) 如果是BST,可以保存到p, q的路径,然后找到链表最后一个公共节点即可 "235. Lowest Common Ancestor of a Binary Sear 阅读全文
posted @ 2019-07-10 17:25 qbits 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 我们使用二叉树的先序遍历来遍历整个树,对于空子树保存为 ,恢复时也根据先序的顺序来恢复 "297. Serialize and Deserialize Binary Tree" 阅读全文
posted @ 2019-07-10 16:40 qbits 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 例题 + 中序遍历 "94. Binary Tree Inorder Traversal" + 先序遍历 "144. Binary Tree Preorder Traversal" + 后序遍历 "145. Binary Tree Postorder Traversal" 递归栈 递归函数栈的方法很 阅读全文
posted @ 2019-07-10 12:33 qbits 阅读(2015) 评论(0) 推荐(2) 编辑
摘要: 创建了EventLoop对象的线程是 IO线程 ,其主要功能是运行事件循环EventLoop::loop(), one loop per thread 事件循环必须在IO线程中运行 Reactor关键结构 Channel + 每个Channel对象自始至终只属于一个EventLoop, 只负责一个f 阅读全文
posted @ 2019-06-28 11:21 qbits 阅读(450) 评论(0) 推荐(0) 编辑