随笔分类 - 算法
数据算法
摘要:cityhash系列字符串散列算法是由著名的搜索引擎公司Google 发布的 (http://www.cityhash.org.uk/)。Google发布的有两种算法:cityhash64 与 cityhash128。它们分别根据字串计算 64 和 128 位的散列值。这些算法不适用于加密,但适合用在散列表等处。目前cityHash算法只有C++的实现,就性能而言,CityHash性能略胜MurmurHash算法。有兴趣的同学可以到http://www.cityhash.org.uk/index.php去看看。
阅读全文
摘要:高性能的Hash算法对我们的应用程序无疑是至关重要的。以下几种Hash的性能很不俗,记录在这里。1. MurMurHash算法 MurmurHash是一种非加密型哈希函数,适用于一般的哈希检索操作。由Austin Appleby在2008年发明,并出现了多个变种,都已经发布到了公有领域(public domain)。与其它流行的哈希函数相比,对于规律性较强的key,MurmurHash的随机分布特征表现更良好。 以下是MurmurHash官方性能图 以下是官方的算法实现,随手摘来了。public class Murmur3{ // 128 bit output, 64 bit pl...
阅读全文
摘要:public static int Sunday(string text, string pattern) { int i, j, m, k; i = j = 0; int tl, pl; ...
阅读全文
摘要:static void BuildTable(string subString, ref int[] next) { if (string.IsNullOrWhiteSpace(subString)) return; int j = 0, k = -1; next[0] = -1; while (j /// 查找算法 /// /// 要搜索的字符串 /// 子串 /// 子串在source字符串中的开始位...
阅读全文
摘要:因项目需要使用字符串查询算法,在网上搜搜了半天,没有找到C#版的。索性根据BM机制,用C#实现了一遍。现在贴出了,以备忘记。 1 /// 2 /// BM算法 3 /// 4 /// 5 /// 6 /// 7 static int BoyerMooreSearch(string source, string subString) 8 { 9 if(string.IsNullOrWhiteSpace(source) || string...
阅读全文

浙公网安备 33010602011771号