zoukankan      html  css  js  c++  java
  • 使用再哈希算法查找元素

    使用再哈希算法查找元素:

    /* 
     hash search, using rehash method
     if find k, return 
     if not find, d=(d+step)%m, rehash find 
    */
    int SearchHash(HashTable H, KeyType k)
    {
            int d, d1, m;
    
            m = H.tableSize;
            d = d1 = k%m;
    
            while(H.data[d].key != -1)
            {
                    if(H.data[d].key == k) //hunt 
                            return d;
                    else
                            d = (d+1)%m;
    
                    if(d==d1)
                                    return -1; //fail
            }
    
            return -1;
    }

    int main(int argc, char *argv[])
    {
            int hash[] = {23, 35, 12, 56, 123, 39, 342, 90};
            int m=11, p=11, n=8, pos;
            int key, index;
            HashTable H;
    
            CreateHash(&H, m, p, hash, n);
    
            key = 123;
    
            index = SearchHash(H, key);
            if(index < 0)
            {
                    printf("find failed!
    ");
                    return -1;
            }
    
            printf("key:%d, index:%d
    ", key, index);
    
            return 0;
    }

    输出结果:

    root@ubuntu:/mnt/shared/appbox/hash# ./hash
    [line:59] addr:1, i=0, key=23
    [line:59] addr:2, i=1, key=35
    [line:70] di:3, i=2, key=12
    [line:70] di:4, i=3, key=56
    [line:70] di:5, i=4, key=123
    [line:59] addr:6, i=5, key=39
    [line:70] di:7, i=6, key=342
    [line:70] di:8, i=7, key=90
    hash index:     0    1    2    3    4    5    6    7    8    9    10   
    key value:      -1   23   35   12   56   123  39   342  90   -1   -1   
    hash times:     0    1    1    3    4    4    1    7    7    0    0    
    key:123, index:5
    root@ubuntu:/mnt/shared/appbox/hash# 


  • 相关阅读:
    nginx last break等
    Jmeter
    nginx location规则
    解决性能瓶颈的一些思路
    spring 一些总结
    idea快捷键
    可读的jvm gc日志时间
    redis 搭建集群
    windows下使用Python来修改文件时间戳
    Python获得文件时间戳
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5108658.html
Copyright © 2011-2022 走看看