Just relax, take it easy..

0%

之前学DBMS的时候接触到B Tree, 但当时懵懵懂懂我的对B Tree的操作也是一知半解.
今天看了书(主要是严谨的定义和完整的伪代码流程), 感触颇深, 以此博客记录一下.

B Tree的定义:

(看上去这些定义好像很啰嗦没什么意思, 但花点时间搞清楚后, 看伪代码和下文会清晰很多.)

  1. 每个节点x有以下的性质
    • x.n → 一个节点中关键字的个数.
    • x.key1 <= x.key2 <= x.key3, e.g. 一个节点: [A, N, O] → A < N < O
    • x.leaf → 是否为叶子节点(True/False)
  2. 每个节点如果有n个关键字, 就有n+1个指向孩子的指针**(x.c1, x.c2, ...)**
  3. 每个叶子节点, 都有相同的深度, 即树的高度h (为什么呢? 每个叶子节点...)
  4. 对于两个相邻关键字x.key1, x.key2之间(子树上)的任意一个关键字k, 必定有x.key1 <= k <= x.key2
  5. 最后有个很重要的概念: 最小度数(minimum degree) → t.
    得到一个节点关键字个数限制:

新的一年有新的开始, 决定使用TDD进行开发! 但第一个问题就是: 执行一次单元测试需要200多秒, 快速地测试执行俨然成为了当务之急!(正经脸🤭)
用这篇博客记录一些django单元测试提速的实用小技巧:

第一次懵懵懂懂接触Heap是在学信息检索的时候, 讲到用min heap直接在disk上对posting lists做合并操作.

今天看了<算法导论(3rd)>第六章堆排序, 感触颇深, 以此博客记录一下.

换新手机时, 有个不大不小的诱惑就是无线充电技术, 少一步插线的步骤, 其实对体验还是有很大的提升的. 用这篇文章, 尝试记录一下我的无线充电器选购心路历程:
机无忌BelkinMophie

这个博客是三四年前用Octopress框架搭的, 老年人的博客, 哈哈.
但是用久了之后有个问题很困扰我: 文章多了之后, 每次运行rake generate要很久.
分享一个小技巧: 可以大大提高了rake generate的速度(12.93s → 1.37s), 实时预览的时候也能对修改秒做响应了!