摘要: 归并排序最差运行时间是O(nlogn),它是利用递归设计程序的典型例子。采用分治的思想。归并排序的最基础的操作就是合并两个已经排好序的序列。假设我们有一个没有排好序的序列,那么首先我们使用分割的办法将这个序列分割成一个一个已经排好序的子序列。然后再利用归并的方法将一个个的子序列合并成排序好的序列。分割和归并的过程如下: 1 4 3 5 2 6 / \ 1,4,3 5,2,6 / \ / \ 1,4 3 5,2 6 / / \ / / \... 阅读全文
posted @ 2013-07-25 22:32 ..孔雀翎.. 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 二叉树的中序遍历->递归算法:typedef struct node_t{ char *value; node_t *left; node_t *right;}*tree, node;void traverse(tree root, void (*visit)(node)) { if(root != NULL) { traverse(root->left, visit); visit(root); traverse(root->right, visit); }}二叉树中序遍历->非递归算法:typedef struct n... 阅读全文
posted @ 2013-07-25 20:45 ..孔雀翎.. 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 今天学了正则表达式~ 正则表达式在各种计算机语言或各种应用领域得到了广大的应用和发展。 有篇博文讲的很基础易懂,可以看看:http://deerchao.net/tutorials/regex/regex.htm#howtouse 阅读全文
posted @ 2013-07-23 00:00 ..孔雀翎.. 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 学了tinymq,先将它的README翻译了一下:TinyMQ - A diminutive message queue (TinyMQ ---一个小型的消息队列)TinyMQ是一个为erlang实现的基于频道的内存消息队列。频道被字符串标识(任何你想的字符串),同时根据需要自动创建和销毁。每一个频道都被一个gen_server进程管理。理论上,每一个频道进程属于一个erlang集群的不同节点,但是现在的代码中,他们都属于TinyMQ启动的那个进程节点。启动队列:application:start(tinymq), % the max_age环境变量定义了消息的默认超时时间,单位秒,默认值为6 阅读全文
posted @ 2013-07-21 23:54 ..孔雀翎.. 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 今天在公司做一个日志分析的任务,在做统计的时候,遇到这样一个问题, 之前已经将数据拆分好,出现这样一张中间表Table,简略写如下: A属性  B属性  C属性  D属性 1   3   5   7 2   4   6   8 现在A属性 B属性 C属性 D属性代表Table表中的四个字段,他们的value有多个,四个属性都是不为空的,现在需要计算出A属性、B属性、C属性、D属性分别组合之后的组合在Table表中的存在数据条数。 阅读全文
posted @ 2013-07-18 18:19 ..孔雀翎.. 阅读(877) 评论(0) 推荐(0) 编辑
摘要: BLOB (binary large object)----二进制大对象,是一个可以存储二进制文件的容器。 在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。 BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。 根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。 但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数据库中存... 阅读全文
posted @ 2013-07-17 09:48 ..孔雀翎.. 阅读(5325) 评论(0) 推荐(0) 编辑
摘要: Bloom Filter是由 Howard Bloom在 1970 年提出的一种多哈希函数映射的快速查找算法,它是一种空间效率很高的随机数据结构,利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合,非常快速的判定某个元素是否在一个集合之外。不过,这种检测只会对在集合内的数据错判,而不会对不是集合内的数据进行错判,也就是说,在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive),这样每个检测请求返回有“在集合内(可能错误)”和“不在集合内(绝对不在集合内)”两种情况。 阅读全文
posted @ 2013-07-16 21:21 ..孔雀翎.. 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 最近工作需要,需要先测试一下erlang启动进程的时间开销,自己着手做了下面的测试,看看erlang 创建100万个进程,每一个进程花费多少时间呢?废话少说,先上代码,在代码中已经做了相关备注~ 阅读全文
posted @ 2013-07-15 18:16 ..孔雀翎.. 阅读(1758) 评论(0) 推荐(0) 编辑