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;}

JustHost:俄罗斯/新西伯利亚vps,512MB内存/5GB空间/不限流量/200Mbps/KVM/自由更换IP,$1.57/月

justhost怎么样?justhost是一家俄罗斯主机商,2006年成立,提供各种主机服务,vps基于kvm,有HDD和SSD硬盘两种,特色是200Mbps不限流量(之前是100Mbps,现在升级为200Mbps)。下面是HDD硬盘的KVM VPS,性价比最高,此外还有SSD硬盘的KVM VPS,价格略高。支持Paypal付款。国内建议选择新西伯利亚或者莫斯科DataLine。支持Paypal付...

digital-vm:VPS低至$4/月,服务器$80/月,10Gbps超大带宽,不限流量,机房可选:日本新加坡美国英国西班牙荷兰挪威丹麦

digital-vm,这家注册在罗马尼亚的公司在国内应该有不少人比较熟悉了,主要提供VPS业务,最高10Gbps带宽,还不限制流量,而且还有日本、新加坡、美国洛杉矶、英国、西班牙、荷兰、挪威、丹麦这些可选数据中心。2020年,digital-vm新增了“独立服务器”业务,暂时只限“日本”、“新加坡”机房,最高也是支持10Gbps带宽... 官方网站:https://digital-vm.co...

6元虚拟主机是否值得购买

6元虚拟主机是否值得购买?近期各商家都纷纷推出了优质便宜的虚拟主机产品,其中不少6元的虚拟主机,这种主机是否值得购买,下面我们一起来看看。1、百度云6元体验三个月(活动时间有限抓紧体验)体验地址:https://cloud.baidu.com/campaign/experience/index.html?from=bchPromotion20182、Ucloud 10元云主机体验地址:https:...

hash hash为你推荐
返回什么叫函数返回?为什么要返回?按键精灵教程按键精灵教程按键精灵教程按键精灵怎么使用文件损坏手机文件已损坏是什么回事?路由器映射路由器映射设置b2c网站B2C模式的网站资源优化配置什么是优化产业结构,资源优化配置??支付宝账单查询支付宝怎么查询交易记录支付宝账单查询支付宝电子账单怎么查询jsp源码在网上下的jsp源码怎么运行?有数据库的
100m虚拟主机 已备案域名出售 老左博客 shopex空间 英文简历模板word 一点优惠网 699美元 银盘服务是什么 域名dns lick 中国电信测速网站 德讯 免费蓝钻 中国联通宽带测试 免费稳定空间 winds sonya 百度新闻源申请 bwg 远程主机强迫关闭了一个现有的连接 更多