Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 单词的哈希函数:如何查找接近的匹配项_C_Hashtable - Fatal编程技术网

C 单词的哈希函数:如何查找接近的匹配项

C 单词的哈希函数:如何查找接近的匹配项,c,hashtable,C,Hashtable,我有一个单词哈希表,我计算位置如下: int hash(char* word) { int h = 0; int i ; int c = 42; for(i = 0 ; i < strlen(word) ; i++) { h += mot[i] * pui(c, i); } } int散列(char*word) { int h=0; int i; int c=42; 对于(i=0;i

我有一个单词哈希表,我计算位置如下:

int hash(char* word)
{
    int h = 0;
    int i ;
    int c = 42;
    for(i = 0 ; i < strlen(word) ; i++)
    {   
        h += mot[i] * pui(c, i);
    }
}
int散列(char*word)
{
int h=0;
int i;
int c=42;
对于(i=0;i
我通过将每个ascii码加到一个整数来计算我的位置,然后将每个ascii码乘以一个常数幂的索引


但是我希望在我的哈希表中与不在哈希表中的单词最接近的匹配,而不必浏览我的所有哈希表。我是否应该修改我的哈希函数来返回一个更好的位置来把单词放在一起?

你可能想考虑用SunDox或MyTimon进行编码,而不是在散列之前或之前进行编码。但是散列的一个缺点是邻近搜索很困难。如果你想在一个有序的集合中找到最接近的匹配,我会说散列表是错误的数据结构。使用排序列表或搜索树。如果用soundex代码求值函数替换哈希函数,邻近搜索将非常容易,尽管哈希可能会退化。。。。