ChinaUnix.net
相关文章推荐:

KarpRabin Hash 用于 字符串查找

搜索引擎的日志要记录所有查询串,有一千万条查询,不重复的不超过三百万  要统计最热门的10条查询串. 内存<1G. 字符串长 0-255  (1) 主要解决思路 //具体用词和原题不大一样  (2) 算法及其复杂度分析 说下我的思路吧: 为一千万条查询字符串简历trie树,读一条插一条. typedef struct trienode{ char c; struct trienode *str[256]; int count;//表示该字符串的数目 }trienode; 每插入一个查询串,如果最后一个tr...

by xiaozhu2007 - C/C++ - 2008-09-22 20:59:39 阅读(4674) 回复(12)

相关讨论

字符串hash算法比较 链表查找的时间效率为O(N),二分法为log2N,B+ Tree为log2N,但hash链表查找的时间效率为O(1)。设计高效算法往往需要使用hash链表,常数级的查找速度是任何别的算法无法比拟的,hash链表的构造和冲突的不同实现方法对效率当然有一定的影响,然而hash函数是hash链表最核心的部分,本文尝试分析一些经典软件中使用到的字符串hash函数在执行效率、离散性、空间利用率等方面的性能问题。 1 概述 链表查找的时间效...

by 061107 - php文档中心 - 2007-12-27 13:22:23 阅读(582) 回复(0)

字符串hash算法比较 1 概述 链表查找的时间效率为O(N),二分法为log2N,B+ Tree为log2N,但hash链表查找的时间效率为O(1)。设计高效算法往往需要使用hash链表,常数级的查找速度是任何别的算法无法比拟的,hash链表的构造和冲突的不同实现方法对效率当然有一定的影响,然 而hash函数是hash链表最核心的部分,本文尝试分析一些经典软件中使用到的字符串hash函数在执行效率、离散性、空间利用率等方面的性能问题。 2 经典字...

by 061107 - php文档中心 - 2007-12-27 09:16:03 阅读(448) 回复(0)

2.1 PHP中出现的字符串hash函数 [code] static unsigned long hashpjw(char *arKey, unsigned int nKeyLength) { unsigned long h = 0, g; char *arEnd=arKey+nKeyLength; while (arKey < arEnd) { h = (h << 4) + *arKey++; if ((g = (h & 0xF0000000))) { h = h ^ (g >> 24); h = h ^ g; } } return h; } [/code] 小弟不...

by attempt - C/C++ - 2007-03-28 09:07:55 阅读(2190) 回复(4)

有几万个基于某字符集的字符串,长度为30。为了便于另外几万个字符串和这个集合的比较,想把这个字符集合建立一个hash表,但是建立字符串集合的hash表,用什么来做hash函数呢? 比如拿前10个字符的ASCII码等来做,各位有什么好的办法来建立hash表以使得这个比较操作更快,谢谢!

by gridbird - C/C++ - 2007-06-27 00:07:48 阅读(3110) 回复(11)

请教: 如果有好多的字符串(包括汉字)要去匹配一个字符串(即检查有没有在字符串中包括),为了实现效率上的提高,我想使用hash 算法,请问有什么好的办法?这个也算是一种检索吧?

by birdielu - C/C++ - 2004-03-11 21:24:02 阅读(1499) 回复(3)

假设a为表原始数据: array a={ #编号 姓名 '05' , '赵七'; '04' , '周六'; '01' , '张三'; '02' , '李四'; '03' , '王五'; ...... } 对'编号'进行hash索引后得到a_i: array a_i={ #Rid 编号 姓名 1=> '01' , '张三'; 2=> '02' , '李四'; 3=> '03' , '王五'; 4=> '04' , '周六'; 5=> '05' , '赵七'; ...... } 当我们查询: select * from a where 编号 between ('0...

by 玛莉隔壁 - MySQL - 2009-01-14 11:38:47 阅读(1835) 回复(8)

假设需要对某个表的字符串类型的列进行索引,并且字符串的长度较长。生成的索引体积就会比较大,同时影响插入及搜索的性能。 这种情况下可以考虑使用对字符串进行hash计算,然后对hash值进行索引。可选的hash函数有crc32(),SHA1,MD5()等等。对于数据量在几十万的数据推荐crc32(); 下面的本机mysql上进行了以下实验: 测试数据源: 将/var/share/dict/word的文件导入到数据库中。 测试过程: 建立测试表crctest; 创建trigger be...

by cenalulu - MySQL文档中心 - 2009-08-14 12:55:46 阅读(1649) 回复(0)

各位高手哪位有简单的字符串hash的C语言实现,请提供一下,多谢了!

by gridbird - C/C++ - 2007-06-27 17:20:14 阅读(9346) 回复(40)

这是一个函数,实现查找功能 struct _data * lookup_pcb(__u32 saddr,__u16 sport,__u32 index) { struct _data *pcb_p; if( data_hash[index] != NULL ) { pcb_p = data_hash[index]; while( pcb_p != NULL ) { if( pcb_p->saddr==saddr && pcb_p->sport==sport ) { return pcb_p; } else { pcb_p = pcb_p->cl_next; } } } return NULL; } 以下是main函数中的一部分 for(...

by love_xn - C/C++ - 2006-02-21 15:38:36 阅读(797) 回复(0)

hash数据库是不是就是查找快?比如berkeley DB 这样的话我就做张大table了

by koath - DB2 - 2004-03-13 22:44:28 阅读(953) 回复(2)