摘要:
sqlite的分词器模块需要对输入的字符串映射为系统中的标示符,其对关键字映射使用了hash算法,其对hash冲突的解决十分巧妙。1:最常规的解决办法:写一堆判断对每个输入字符串判断是否匹配,如果匹配就映射为系统中的关键字。由于sqlite的关键字有100多个,如果每个字符串进行比较判断,无疑效率很低2:使用hash算法: 首先构造一个散列函数,该函数计算字符串得到一个hash映射表的入口地址。 在入口地址中存放对应的记录. 由于对不同的字符串进行散列后可能得到一个相同的入口地址,这就要求我们要对冲突进行解决.2.1以前遇到类似的问题,基本使用了链地址法来解决冲突的问题。例如:typedef 阅读全文