代码改变世界

随笔分类 - 经典算法回顾

如何实现简单的位数组(bit array)

2013-05-27 22:02 by Haippy, 11295 阅读, 收藏, 编辑
摘要: 在 comp.lang.c 上面看到一则不错的 FAQ,《How can I implement sets or arrays of bits?》感觉很实用,仅仅使用了几个简单的宏就实现了一个基本的位数组(bitset)。 阅读全文

一些鲜为人知却非常实用的数据结构

2013-05-27 16:46 by Haippy, 7044 阅读, 收藏, 编辑
摘要: 作为程序猿(媛),你必须熟知一些常见的数据结构,比如栈、队列、字符串、链表、二叉树、哈希,但是除了这些常见的数据结构以外,还有没有其他不是很有名,但却非常实用的数据结构呢,有人在 stackoverflow 上问了这样一个问题,得到了很多热心观众的回答,我们今天就来看看那些鲜为人知却非常实用的数据结构吧。 阅读全文

如何将 Linux 内核实现的红黑树 rbtree 运用到你的 C 程序中?

2012-09-02 23:48 by Haippy, 18895 阅读, 收藏, 编辑
摘要: 相信大家都知道红黑树是什么吧,但是呢......如果你确实不知道,你不该穿越到这儿的,你应该去这里,这里,还有这里看看,然后再来这里看看,最后如果大爷您赏脸,再来看看我吧 :-) 阅读全文

布隆过滤器(Bloom Filter)的C语言实现

2012-07-14 22:47 by Haippy, 6066 阅读, 收藏, 编辑
摘要: 前文《布隆过滤器(Bloom Filter)详解》主要讲了布隆过滤器(Bloom Filter)的基本原理和相关应用,本文将使用C语言实现一个简单的布隆过滤器(Bloom Filter)。 阅读全文

Hash 函数资源链接汇总

2012-07-14 12:01 by Haippy, 1682 阅读, 收藏, 编辑
摘要: Hash 函数资源链接汇总 阅读全文

布隆过滤器(Bloom Filter)详解

2012-07-13 18:35 by Haippy, 56461 阅读, 收藏, 编辑
摘要: 布隆过滤器(Bloom Filter)是由布隆(Burton Howard Bloom)在1970年提出的。它实际上是由一个很长的二进制向量和一系列随机映射函数组成,布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率(假正例False positives,即Bloom Filter报告某一元素存在于某集合中,但是实际上该元素并不在集合中)和删除困难,但是没有识别错误的情形(即假反例False negatives,如果某个元素确实没有在该集合中,那么Bloom Filter 是不会报告该元素存在于集合中的)。 阅读全文

一致性hash算法释义

2011-12-10 09:57 by Haippy, 22622 阅读, 收藏, 编辑
摘要: 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的(参见扩展阅读[1]),设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 阅读全文

幂律分布研究简史(转载)

2011-12-05 16:38 by Haippy, 2622 阅读, 收藏, 编辑
摘要: 自然界与社会生活中存在各种各样性质迥异的幂律分布现象,因而对它们的研究具有广泛而深远的意义。近年来,借助于有效的物理和数学工具,及强大的计算机运算能力,科学家们对幂律分布的本质有了进一步深层次的理解。本文从统计物理学的角度,简要介绍了幂律分布的研究史以及最新的进展,并对它的形成机制及动力学影响作了一些言简意赅的阐述。 阅读全文

python实现的k-means算法(原创)

2011-09-21 14:39 by Haippy, 7807 阅读, 收藏, 编辑
摘要: K-means算法的python代码,写完 + 调试代码花了差不多一天的时间,希望对大家有用。 阅读全文