青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 195,  comments - 30,  trackbacks - 0

這是第一種哈希函數(shù),運(yùn)行時(shí)間短,但內(nèi)存占用多。哈希函數(shù)是怎么得到的?我也想知道。。。
#include<stdio.h>
#include<string.h>
#include<math.h>
struct abc
{
    int boo;
    char key[12];
}hash[1100005];
int const prime=999983;
double const gold=0.618033;
void insert(char a[],int k,int w)
{
    if(hash[w].boo==0)
    {   
        hash[w].boo=k;
        memcpy(hash[w].key,a,sizeof(hash[w].key));
    }
    else
        insert(a,k,w%prime+1);    
}
int find(int k,int w)
{
    if(hash[w].boo==k)
    {
        printf("%s\n",hash[w].key);
            return 1;
    }   
    else
    {
        if(hash[w].boo==0)
            return 0;
        else
            return find(k,w%prime+1);
    }   
}
int main()
{
    freopen("in.txt","r",stdin);
    char a[12],b[12];
    scanf("%c",&a[0]);
    while(scanf("%s%s",a+1,b))
    {
        getchar();
        int len=strlen(b);
        int k=0;
        for(int i=0;i<len;i++)
            k=k*26+b[i]-'a';
        int w=int (prime*(k*gold-floor(k*gold)));
        insert(a,k,w);
        scanf("%c",&a[0]);
        if(a[0]=='\n')
            break;
    }
    while(scanf("%s",&a)==1)
    {
        int len=strlen(a);
        int k=0;
        for(int i=0;i<len;i++)
        k=k*26+a[i]-'a';
        int w=int (prime*(k*gold-floor(k*gold)));
        if(find(k,w)==0)
        printf("eh\n");
    }
    return 0;
}
這是用書(shū)中提到的ELFhash()函數(shù),也沒(méi)體現(xiàn)出時(shí)間上的優(yōu)勢(shì),但空間上確實(shí)是省了不少,可能是計(jì)算ELFhash()時(shí)浪費(fèi)了時(shí)間吧,處理字符串哈希沖突的辦法目前只發(fā)現(xiàn)了線形探測(cè)法,雖然不理想,但愿將來(lái)能發(fā)現(xiàn)別的辦法。
ELFhash函數(shù)在UNIX系統(tǒng)V 版本4中的“可執(zhí)行鏈接格式”( Executable and Linking Format,即ELF )中會(huì)用到,ELF文件格式用于存儲(chǔ)可執(zhí)行文件與目標(biāo)文件。ELFhash函數(shù)是對(duì)字符串的散列。它對(duì)于長(zhǎng)字符串和短字符串都很有效,字符串中每個(gè)字符都 有同樣的作用,它巧妙地對(duì)字符的ASCII編碼值進(jìn)行計(jì)算,ELFhash函數(shù)對(duì)于能夠比較均勻地把字符串分布在散列表中。
#include<stdio.h>
#include<string.h>
#include<math.h>
#define MOD 300005
struct abc
{
    bool boo;
    char akey[12];
    char bkey[12];
}hash[300005];

int ELFhash(char *key)
{
    unsigned long h=0;
    while(*key)
    {
        h=(h<<4)+*key++;
        unsigned long g=h&0Xf0000000L;
        if(g) h^=g>>24;
        h&=~g;
    }
    return h%MOD;
}
void insert(char a[],char b[],int w)
{
    if(!hash[w].boo)
    {   
        hash[w].boo=true;
        memcpy(hash[w].akey,a,sizeof(hash[w].akey));
        memcpy(hash[w].bkey,b,sizeof(hash[w].bkey));
    }
    else
        insert(a,b,w+1);    
}
int find(char b[],int w)
{
    if(hash[w].boo && strcmp(hash[w].bkey,b)==0)
    {
        printf("%s\n",hash[w].akey);
            return 1;
    }   
    else
    {
        if(!hash[w].boo)
            return 0;
        else
            return find(b,w+1);
    }   
}
int main()
{
    char a[12],b[12];
    scanf("%c",&a[0]);
    while(scanf("%s%s",a+1,b))
    {
        getchar();
        int w=ELFhash(b);
        insert(a,b,w);
        scanf("%c",&a[0]);
        if(a[0]=='\n')
            break;
    }
    while(scanf("%s",&b)==1)
    {
        int w=ELFhash(b);
        if(find(b,w)==0)
        printf("eh\n");
    }
    return 0;
}

本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/cugbliang/archive/2008/05/30/2497539.aspx

posted on 2009-07-01 14:29 luis 閱讀(946) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 轉(zhuǎn)載
<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

文章分類

文章檔案

友情鏈接

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品乱码久久久久久蜜桃麻豆| 亚洲欧美精品一区| 免费h精品视频在线播放| 欧美激情一区二区在线 | 日韩视频免费观看| 香蕉久久夜色精品| 欧美—级在线免费片| 国产视频在线观看一区二区三区| 亚洲激情视频在线| 夜夜爽www精品| 老司机免费视频一区二区三区 | 99热在线精品观看| 免费观看在线综合色| 国产午夜精品久久久久久久| 中文av一区特黄| 久久久久99| 亚洲一区二区三区免费在线观看| 欧美大秀在线观看 | 久久久综合免费视频| 一区二区三区精品国产| 欧美精品日韩| 亚洲精品影视在线观看| 免费成人高清| 久久久久九九九| 在线看视频不卡| 美女在线一区二区| 久久精品国产精品亚洲综合| 国产精品专区一| 亚洲一区黄色| 一区二区三区**美女毛片| 欧美成人精品一区| 亚洲美女一区| 亚洲国产日韩欧美一区二区三区| 久久精品一级爱片| 极品尤物一区二区三区| 欧美亚洲网站| 亚洲视频第一页| 小处雏高清一区二区三区 | 欧美福利视频| 亚洲欧洲精品成人久久奇米网 | 一区二区三区四区国产精品| 免费成人在线观看视频| 午夜在线一区二区| 一级成人国产| 亚洲伊人伊色伊影伊综合网| 国产精品分类| 亚洲女同在线| 欧美一级日韩一级| 亚洲激情视频在线播放| 亚洲精品一区二区网址| 欧美日韩在线电影| 亚洲人体1000| 亚洲欧美日本日韩| 国产一区二区三区成人欧美日韩在线观看| 久久av一区| 久久综合狠狠| 在线亚洲免费视频| 亚洲欧洲av一区二区| 亚洲国产网站| 一区二区精品在线| 国产亚洲精品bt天堂精选| 欧美一区二区三区久久精品茉莉花 | 欧美成人免费在线| 欧美亚洲日本国产| 久久久久综合网| 亚洲精品一区二区三区樱花 | 久久久综合网站| 欧美激情91| 午夜精品久久久久久久99热浪潮| 久久在线免费| 亚洲午夜精品17c| 久久久久久久综合色一本| 亚洲每日在线| 久久久久欧美| 亚洲一区自拍| 美女图片一区二区| 亚洲欧美日本在线| 男男成人高潮片免费网站| 亚洲欧美一区二区三区在线| 久久亚洲午夜电影| 久久精品日产第一区二区| 欧美激情第1页| 久久综合福利| 免费的成人av| 欧美肥婆在线| 国产欧美一区二区精品性| 亚洲欧洲日本mm| 禁久久精品乱码| 欧美精品乱人伦久久久久久| 一本一本久久| 久久久亚洲国产天美传媒修理工| 在线日韩中文| 国产精品久久影院| 欧美wwwwww| 国产精品乱码| 美乳少妇欧美精品| 国内外成人在线| 一二三区精品| 亚洲国产精品高清久久久| 亚洲欧美制服中文字幕| 久久色中文字幕| 蜜桃精品一区二区三区| 国产精品热久久久久夜色精品三区| 欧美成人免费播放| 国产欧美日韩亚洲| 亚洲欧美视频| 欧美在线观看视频| 国产精品有限公司| 亚洲视频免费在线观看| 午夜精品久久久久久久蜜桃app | 午夜精品福利一区二区三区av | 亚洲国产高清一区| 欧美成人一区二区三区在线观看 | 午夜精品久久久久久久99樱桃| 欧美一乱一性一交一视频| 国产午夜精品理论片a级探花| 久久av一区二区三区| 免费观看国产成人| 99pao成人国产永久免费视频| 欧美日韩亚洲一区二区三区在线观看| 99热免费精品在线观看| 久久精品官网| 亚洲精品国产精品乱码不99按摩| 欧美日韩伦理在线| 午夜精品视频| 亚洲国产cao| 亚洲欧美伊人| 亚洲国产精品小视频| 欧美日韩综合在线| 久久成人精品无人区| 亚洲人成毛片在线播放女女| 欧美影院成年免费版| 亚洲精品九九| 国产一区二区三区在线观看视频| 免费成人av在线看| 亚洲欧美综合| 99国产精品久久久久久久久久 | 久久精品一区二区国产| 亚洲精品乱码久久久久久蜜桃91| 亚洲天堂免费观看| 欧美精品粉嫩高潮一区二区 | 亚洲免费在线电影| 欧美aⅴ99久久黑人专区| 亚洲国产成人精品久久久国产成人一区 | 小黄鸭视频精品导航| 狠狠色噜噜狠狠狠狠色吗综合| 欧美成人一品| 久久精品亚洲国产奇米99| 日韩香蕉视频| 欧美成人免费大片| 久久久欧美一区二区| 亚洲综合精品一区二区| 亚洲精品国产无天堂网2021| 国产在线观看一区| 国产精品视频久久久| 欧美日韩三级在线| 欧美国产视频在线观看| 久久午夜av| 久久久久女教师免费一区| 先锋影音久久| 亚洲欧美在线免费| 午夜精品999| 亚洲一区二区欧美日韩| 亚洲精选成人| 亚洲精品亚洲人成人网| 亚洲激情在线观看| 亚洲第一精品电影| 欧美成年人网| 免费影视亚洲| 欧美99在线视频观看| 免费观看一区| 欧美黑人在线播放| 欧美成人免费网| 免费亚洲电影在线| 欧美激情1区2区3区| 免费在线日韩av| 欧美电影免费观看网站| 免费在线看成人av| 欧美jizzhd精品欧美巨大免费| 久久亚洲精品网站| 老妇喷水一区二区三区| 裸体素人女欧美日韩| 模特精品在线| 亚洲国产小视频在线观看| 亚洲精品美女| 亚洲一区在线播放| 欧美一区成人| 美女视频网站黄色亚洲| 欧美久久99| 国产欧美日韩在线视频| 黄色小说综合网站| 亚洲黄色成人网| 一本色道久久综合狠狠躁篇的优点 | 欧美不卡高清| 亚洲狠狠婷婷| 亚洲亚洲精品在线观看| 欧美亚洲三区| 免费一级欧美在线大片| 欧美国产亚洲精品久久久8v| 国产一区二区在线观看免费播放|