随笔分类 -  算法

摘要:习惯在C#代码中写str+="xxx";这样代码的请注意啦,如果这种操作是针对单个变量作很多次叠加操作的,很有可能导致性能降低。大家都知道string与StringBuilder的区别,这里就不说了,来看看例子,震撼一下:分别是测试普通字符串进行5w次叠加操作 vs StringBuilder进行5... 阅读全文
posted @ 2014-07-01 08:45 McKay 阅读(690) 评论(1) 推荐(0) 编辑
摘要:考虑到sql server以及c#,最多只能用decimal类型,也就是29位的数字,做了下面这个数字型id生成器:class Program { static void Main(string[] args) { int i = 100000; Timing t = new Timing(); t.Start(); while(i-->0) UniqueIdGenerator.Next(); t.Stop(); ... 阅读全文
posted @ 2013-12-06 17:05 McKay 阅读(2255) 评论(2) 推荐(0) 编辑
摘要:我们来比较下散列的3种冲突解决方式,建立3个类,分别代表3种不同的冲突解决方式:MyHash_MAD_多槽位MyHash_MAD_独立链MyHash_MAD_线性探测法然后在主程序中分别插入10000条记录,比较各自所需要的时间。先介绍下:MAD:multiply-add-divide method,乘法 - 加法 - 除法(取模),如下这个公式是散列核心公式(a*collisionIndex+b)%M, M要求是素数,a, b的取值要合理冲突解决方式:多槽位当计算出的Index位置处已经被占用后,还是会在这个index的地方增加一个元素主数组的每个元素是个列表(比如每个元素都能放5个子元素) 阅读全文
posted @ 2013-12-05 15:43 McKay 阅读(2400) 评论(2) 推荐(1) 编辑
摘要:有想过hash["A1"] = DateTime.Now;这句是怎么实现的吗?我们来重温下学校时代就学过的哈希算法吧。我们要写个class,实现如下主程序调用:static void Main(string[] args) { MyHash hash = new MyHash(); hash["A1"] = DateTime.Now; hash["A2"] = 1; Console.WriteLine(Convert.ToString(hash["A1"])); Cons... 阅读全文
posted @ 2013-12-04 09:31 McKay 阅读(5235) 评论(6) 推荐(3) 编辑

点击右上角即可分享
微信分享提示