数据结构与算法
schumyxp
如果你无所不能,那就来当一名程序员吧!
展开
-
Huffman编码
未来一段时间我要整理一下数据结构相关的一些东西。包括树,图等等。今天就先从树开始,这次登场的是Huffman树。Huffman编码的目的是,最小化编码的长度,用最小化的编码量,还表达数据信息。比如我们有三个字母要进行编码,分别是a,b,c.。可以分别编码为01,11,10,也可以编码为011,010,001。反之只要能区分出来就可以。但这都不是最小化的编码。其中一种最小化的编码是:0,10原创 2008-04-23 11:03:00 · 2295 阅读 · 0 评论 -
for循环嵌套的效率
有人说,两个嵌套的for循环,把循环次数多的放在里面,效率会比较高。这是个老话题了。网上的讨论很多。我记得我第一次见到这个问题的时候还在上高中。今天就简单的总结一下吧。先上代码:void test1(){ long dt = DateTime.Now.Ticks; for (int i = 0; i { for (int j = 0; j { a[i,j] = 0; } }原创 2008-05-06 09:41:00 · 7821 阅读 · 2 评论 -
由“位运算”想到的
最近,有人问到我一个面试题,求可以整除整数N的最大的数,并且还是2的幂。因为这次不是讨论这个问题,我就直接给答案了,是:N&(-1*N)。这个题目就用到了位运算。位运算很简单,一共就那么几个,分别是:左移位(>),与(&),或(|),异或(^),取反(~)。没了,就这些了。那么,用这些操作,都可以干些什么呢?在回答这个问题问题之前,需要先复习一些离散数学里面的问题,至少我需要复习一下。原创 2008-05-18 10:55:00 · 595 阅读 · 0 评论 -
服务器端的高性能实现(七)——订阅功能的引入
很多时候,我们会需要这样的功能:1,甲告诉乙,你去监控一个值,每个一秒钟向我汇报一次2,甲告诉乙,我现在要去做别的事情了,委托给你一件事情,5秒钟后你去做要实现上面的场景,就需要一种功能。这种功能,有时候我们称为订阅。就像我们在邮局订了杂志一样,每个月,邮局都会主动把杂志给我们送过来,不用我们每个月都去给邮局打个电话,告诉他给我送杂志来。因为这个功能很有用,也很常用,所以我决定把它加入到这个框原创 2008-05-30 11:55:00 · 1068 阅读 · 0 评论 -
我们用了多少内存之string
我们大家都知道,如果我们声明了一个变量或者对象,内存里面首先会有一个指针,指向具体的内容。比如说,我声明了一个字符串“hello”,那就有一个字符串指针指向这个字符串。在32位系统下,这个指针就是32位的,占了我4个字节的空间。字符是16位的,hello一共5个字母,又占了我10个字节。那是不是说,这个字符串就占了我14个字节呢? 我不知道。动手找答案吧! 下面的讨原创 2008-12-29 11:44:00 · 851 阅读 · 0 评论 -
摘录来的一些滤波算法
1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点: 能有效克服因偶然因素引起的脉冲干扰 C转载 2009-12-17 22:51:00 · 564 阅读 · 0 评论