职友集>程序员面试题 > 一个非常经典c++的hash算法

一个非常经典c++的hash算法

2015-11-01 06:30:01 阅读( 84 )

2749人 收藏本页

标签:程序员面试题

《一个非常经典c++的hash算法》

hash.h

#ifndef _HASH_H_
#define _HASH_H_

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <ctype.h>

#define HASH_GENE 4
#define OVER_ (65535*65535)

int hash(char *key_str, unsigned long MAX_SS_NUM);

#endif //_HASH_H_

hash.c

#include "hash.h"

int hash(char *key_str, unsigned long MAX_SS_NUM)
{
register unsigned int h;
register unsigned char *p;

for(h=0, p = (unsigned char *)key_str; *p ; p++)
{
h = 31 * h + *p;
}

return (h % MAX_SS_NUM);
}

下一篇:翻转句子中单词的顺序 --程序员面试题精选

上一篇:微软招聘程序员的笔试题目

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题