Random Binary Search Tree - Treap BST插入顺序与平衡性众所周知,二查搜索树(BST)的搜索、插入、删除的复杂度等于树高,所以平衡度越高,越接近$ O(nlogn) $,越有序越退化为$ O(n) $ …………………… 对于左侧的BST来说,只有唯一的构造序列:$ <1,2,\dots,14> $ 但对于右侧的BST,可以存在21964800种不同序列 也就是说,随即插入序列到二叉树所形成的平衡度,将大于部分有序插 2015-11-03 未分类 #数据结构
用 C++ 写一个 Inet4Address 类 Inet4Address 在 .net 和 facebook/folly 中也叫做 IPAddress。(顺便黑一下,muduo 中居然把 SocketAddress 叫做 InetAddress 真是有失偏颇。 构造ip地址 ip 地址的构造,比较麻烦的地方就是网络序和主机序之间的问题。 我们的 raw ipv4 address 存储在一个 uint32_t 的整数中,按照 lin 2015-11-01 未分类 #C++
Implementing an unique_ptr 事实证明实现一个 unique_ptr 对其原理的认知并没有什么提升。 为了简便,我们只实现 single object 版本,不实现存储 array type 的 unique_ptr。 我们首先要对 UniquePtr 的定义进行声明: 12template<class T, class D>class UniquePtr { T 是 UniquePtr 所存储的指针 2015-10-04 未分类 #C++
关于 boost::noncopyable 的一点思考 一般通过继承 boost::noncopyable 来保证类的对象不会被复制。我们会采用如下写法: 1class Buffer : boost::noncopyable { 注意的是,我们既可以采用公有继承 (public),也可以采用默认继承方式 (private),具体使用哪一种方式,需要我们的思考。 譬如,当父类拥有了 noncopyable 的特性,一般情况下,我们希望子类在继 2015-10-01 未分类 #C++ #Boost
关于 Redis 3.0 中的数据结构 Redis 是什么?Redis 官方网站:http://redis.io/ 为什么要阅读 redis 的源代码?等价于问题:知乎:我们(大多数人)为什么喜欢造轮子? redis 中有功能精简的模块,如 anet, ae,也有针对 redis 高度优化的数据结构模块,如 ziplist, dict, intset 等。这些模块相对易于学习,也非常有料。redis 本身就是一个相当优秀的开源作品,并 2015-05-26 未分类 #Redis
I++俱乐部 东南大学江宁区九龙湖校区南门软件学院,当年我的好基友总是说我不是在学院就是在去学院的路上。 真的,多年前的软件学院那是一个怎样的存在,整层楼6间不用抢座宽敞明亮的自习教室,再来一层楼6间不用抢座宽敞明亮的机房,再来一排各式供社团使用的独立工作室,4层楼每层楼梯转角有乒乓球桌;自习室机房和工作室各式该有的网电空调工位齐全;1楼设有专用的图书室和文娱室;门 2015-05-17 未分类