把自动机用作 Key-Value 存储

阅读更多关于《把自动机用作 Key-Value 存储》

这篇文档只关心 有穷状态自动机 ,不讲具体的算法,对自动机只讲一些基本概念。主要描述 怎样使用自动机工具创建 KV 数据库,怎样使用自动机 API 访问 KV 数据库…… 继续阅读

原地排序-更简洁的算法

阅读更多关于《原地排序-更简洁的算法》

在我以前的这篇文章中:原地排序与链表翻转

解决这个问题是先把链表翻转,然后再循环左移,原理是清楚了,可是稍显繁琐。今天得知该问题的另一个解法: 继续阅读

Context 终于进 boost 了

阅读更多关于《Context 终于进 boost 了》

Version  1.51.0

New Libraries: Context 继续阅读

实现了一个压缩算法,在数据高度压缩的前提下,还可以快速查找 key

阅读更多关于《实现了一个压缩算法,在数据高度压缩的前提下,还可以快速查找 key》

最近写了一个算法,可用于 (key,value) 存储,key 当然是 string 类型。

用一个 2.3G 的 url 集合做测试,如果不计 value 占用的空间,key 集合的存储空间可以被压缩70倍!压缩后整个数据结构仅占31M内存!压缩率比 bzip2 还要高。 继续阅读

原地排序与链表翻转

阅读更多关于《原地排序与链表翻转》

有个长度为 n 的 (key,val) 数组 a,其中 key 是 int 类型,并且其值在 [0, n) 之间(前闭后开,包括 0 不包括 n),该数组按 key 是乱序的,但没有重复 key。

题目要求:对 a 原地按 key 排序,可以使用常数个临时变量,不允许使用其它额外空间,时间复杂度必须是O(n) 继续阅读

Name lookup take place before access control

阅读更多关于《Name lookup take place before access control》

Yes, "1." is a floating point number.

hash_strmap & gold_hash_map update

阅读更多关于《hash_strmap & gold_hash_map update》

hash_strmap

在不增加任何额外成本的情况下,string pool 中每个 string 消耗的内存,平均情况下,减少了一个字节。太不值一提。 继续阅读

linux kernel 中的二叉树搜索 与 stl 相应物的对比

阅读更多关于《linux kernel 中的二叉树搜索 与 stl 相应物的对比》

Linux kernel 中也使用并实现了红黑树,但是查找算法没有自己实现,而是希望使用者去实现。如果只是实现一个精确查找的函数,这很简单,几乎每个人都能写出正确的代码: 继续阅读

C++ Question: using

阅读更多关于《C++ Question: using》

下面这段代码,运行结果会如何呢?

  • A. B::f
  • B. #1 编译错
  • C. #2 编译错
  • D. #3 编译错

C++ 2-phase lookup

阅读更多关于《C++ 2-phase lookup》

This 2-phase look up of g++ (gnu C++) seems not inconsistency: builtin types are not treat equivalent with user defined type. 继续阅读