ハッシュサーチ

ハッシュサーチは検索は圧倒的に高速です。データをテーブルに格納する際に簡単な式でキーを割り当て、そのキーでダイレクトに飛べる場所にデータを格納しておきます。

#include 
#include 
#include 

#define HASH_SIZE 4096

static char **Str[HASH_SIZE];
static int Strmax[HASH_SIZE];

int strno(char *str)
{
    static char *null="";
    char *p,*ptr,*ptrc;
    int i;
    unsigned n;
    
    if(str==NULL){
        ptr=null;
    }
    else{
        ptr=str;
    }
    
    n=0;
    for(ptrc=ptr;(*ptrc)!='\0';ptrc++){
        n+=(unsigned)(*ptrc);
    }
    n%=HASH_SIZE;
    for(i=0;i