hash hashc语言hash函数有几种

hash hash  时间:2022-03-02  阅读:()

c语言hash函数有几种

1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include?#include?//这里我自己设计一个hash算法来快速查找一堆数字中相等的数字,这也许是最接近原理的算法了//一个整数整除27后的来作为hash函数//定义一个保存实际数据的结构体节点struct?data_node{????int?num;????int?count;????struct?data_node?*next;};//定义一个结构体时hash表的一部分typedef?struct{????int?key;?//余数????struct?data_node?*p;?//链表的头指针}?hash_node;#define?HASH_SIZE?27int?do_hash(int?num)?//hash表来求余数,这样就可以了{????return?num%HASH_SIZE;}//初始化//添加数字//更新数字//删除数字//查找数字hash_node?HashTable[HASH_SIZE];?//这里申明一个hashtable的数组//初始化函数,需要做的事将key复制为null,将p指针指向null,返回一个头指针来指向这个hashtablevoid?InitHashTable(hash_node?*HashTable) {????//进行参数的校验????for(int?i=0;i????{ ????????HashTable[i].key?=?0;????????HashTable[i].p?=NULL;????} }//保存到这个链表中//如果这个链表是空的话,就作为头指针,如果这个链表不为空,则添加到吧数字添加到末尾int?savedata(struct?data_node?**head,int?num) {????structdata_node?*tmp_p?=?*head;????structdata_node?*p?=?(structdata_node?*)malloc(sizeof(structdata_node));????if(p?==?NULL)????????return0;????if(*head?==?NULL) ????{ ????????*head?=?p;????????p->count?=?1;????????p->num?=?num;????????p->next?=?NULL;????}????else//如果不为空,则这个时候应该添加到链表末尾????{????????while(tmp_p?!=?NULL)//如果存在,则将这个节点的count加1就可以了????????{????????????if(tmp_p->num?==?num) ????????????{ ????????????????free(p);????????????????++tmp_p->count?;????????????????return0;????????????}????????????if(tmp_p->next?==?NULL)????????????????break;????????????tmp_p?=?tmp_p->next;????????} ????????tmp_p->next?=?p;????????p->count?=1;????????p->num?=?num;????????p->next?=?NULL;????}????return0;}//添加数字//将这个数字经过hash求出结果,然后再保存到相应的链表中//返回真或者假就可以了int?add_hash(hash_node?*HashTable,int?num) {????intmod?=?do_hash(num);????returnsavedata(&HashTable[mod].p,num);}intmain() {????intnum?=?100;????hash_node?*H?=?HashTable;????InitHashTable(H);????add_hash(H,num);????add_hash(H,num);????add_hash(H,3);????add_hash(H,1);????add_hash(H,4);????//在这里我们可以发现一个好的hash函数是多么的重要,如果hash函数不好造成很多冲突的话,效率并不会提高很多的,理想的情况是冲突几乎没有????//这也就是设计hash函数的精髓所在????return?0;}

美国VPS 美国高防VPS 香港VPS 日本VPS 首月9元 百纵科技

百纵科技湖南百纵科技有限公司是一家具有ISP ICP 电信增值许可证的正规公司,多年不断转型探索现已颇具规模,公司成立于2009年 通过多年经营积累目前已独具一格,公司主要经营香港服务器,香港站群服务器,美国高防服务器,美国站群服务器,云服务器,母机租用托管!美国CN2云服务器,美国VPS,美国高防云主机,美国独立服务器,美国站群服务器,美国母机。美国原生IP支持大批量订货 合作 适用电商 亚马逊...

棉花云1折起(49元), 国内BGP 美国 香港 日本

棉花云官网棉花云隶属于江西乐网科技有限公司,前身是2014年就运营的2014IDC,专注海外线路已有7年有余,是国内较早从事海外专线的互联网基础服务提供商。公司专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前公司研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务(SaaS),拥有丰富的国内BGP、双线高防...

VirMach(8元/月)KVM VPS,北美、欧洲

VirMach,成立于2014年的美国IDC商家,知名的低价便宜VPS销售商,支持支付宝、微信、PayPal等方式付款购买,主打美国、欧洲暑假中心产品,拥有包括洛杉矶、西雅图、圣何塞、凤凰城在内的11个数据中心可以选择,可以自由搭配1Gbps、2Gbps、10Gbps带宽端口,有Voxility DDoS高防IP可以选择(500Gbps以上的防御能力),并且支持在控制面板付费切换机房和更换IP(带...

hash hash为你推荐
nvidia官方网站官网NVIDIA驱动和win10系统不兼容,怎么解决?招行信用卡还款招商信用卡怎么还款呢快照优化网站快照优化需要注意什么硬盘分区格式化新硬盘分区格式化有哪些方法?互动电视怎么用互动电视上网主板说明书请问那位有联想945GZ主板说明书360官网打不开360官网进不了怎么办无线互联网笔记本电脑之间可不可以实现无线互联?如果能,该怎么联接?我的电脑打开很慢电脑开机慢怎么办电脑速度慢怎么办fshow神禧年是什么?
免费域名跳转 greengeeks 赵容 香港加速器 樊云 oneasiahost 128m内存 la域名 网站监控 魔兽世界台湾服务器 灵动鬼影 北京双线机房 日本bb瘦 100m空间 老左正传 广州服务器 息壤代理 免费网页空间 万网空间购买 web服务器搭建 更多