算法
xieyaa
这个作者很懒,什么都没留下…
展开
-
递归
递归很常用,但是很耗内存,因为需要存储临时变量,当递归次数多了,占据的内存数量惊人。如下, 是阶乘的递归: int function(n) { return n==1?1:function(n-1)*n;} 还有更好的递归算法,称为尾递归。这种方式不需要存储临时变量。erlang的实现方法:-module(test).-export([fa原创 2009-04-05 12:01:00 · 802 阅读 · 1 评论 -
Bloom Filter
一个经典的问题:有1000瓶药物,但是其中有一瓶是有毒的,小白鼠吃了一个星期以后就会死掉,请问,在一个星期内找出有毒的药物,最少需要多少只小白鼠?如果一个人考虑问题是二进制的考虑方法,那么肯定好不犹豫的会说10只,为什么呢?因为小白鼠能够有两种状态,1代表生,0代表死,那么10只能表示2的10次方种状态,那么也就是说能表示1024种状态,那么答案也就是10只。 任何perl原创 2010-03-16 12:16:00 · 1090 阅读 · 0 评论