文山文山市网站建设杭州网站建设提供商
2026/2/17 9:16:45 网站建设 项目流程
文山文山市网站建设,杭州网站建设提供商,设计一个网站的价格,一台云服务器做多个网站HASH函数构造构造函数的常用方法#xff08;下面为了叙述简洁#xff0c;设 h(k) 表示关键字为 k 的元素所对应的函数值#xff09;#xff1a;为简单起见#xff0c;假定关键码是定义在自然数集合上#xff0c;常见的哈希函数构造方法有#xff1a;1、直接定址法以关键…HASH函数构造构造函数的常用方法下面为了叙述简洁设 h(k) 表示关键字为 k 的元素所对应的函数值为简单起见假定关键码是定义在自然数集合上常见的哈希函数构造方法有1、直接定址法以关键字Key本身或关键字加上某个数值常量C作为散列地址的方法。散列函数为h(Key) KeyC若C为0则散列地址就是关键字本身。2、除余法选择一个适当的正整数m用m去除关键码取其余数作为地址即h(Key) Key % m这个方法应用的最多其关键是m的选取,一般选m为小于某个区域长度n的最大素数如例1中取m13为什么呢就是为了尽力避免冲突。假设取m1000 则哈希函数分类的标准实际上就变成了按照关键字末三位数分类这样最多1000类冲突会很多。一般地说如果 m 的约数越多那么冲突的几率就越大。而素数的约数是最少的因此我们选用大素数。记住“素数是我们的得力助手”。3、数字分析法常有这样的情况关键码的位数比存储区域的地址的位数多在这种情况下可以对关键码的各位进行分析丢掉分布不均匀的位留下分布均匀的位作为地址。本方法适用于所有关键字已知并对关键字中每一位的取值分布情况作出了分析。【例】 对下列关键码集合表中左边一列进行关键码到地址的转换要求用三位地址。分析键码是9位的地址是3位的需要经过数字分析丢掉6位。丢掉哪6位呢显然前3位是没有任何区分度第5位1太多、第6位基本都是8和9、第7位都是3、4、5这几位的区分度都不好而相对来说第4、8、9位分布比较均匀所以留下这3位作为地址表中右边一列。4、平方取中法将关键码的值平方然后取中间的几位作为散列地址。具体取多少位视实际要求而定取哪几位常常结合数字分析法。【例】将一组关键字(01000110101010010111)平方后得(00100000012100102010010020010012321)若取表长为1000则可取中间的三位数作为散列地址集(100121201020123)。5、折叠法如果关键码的位数比地址码的位数多而且各位分布较均匀不适于用数字分析法丢掉某些数位那么可以考虑用折叠法。折叠法是将关键码从某些地方断开分关键码为几个部分其中有一部分的长度等于地址码的长度然后将其余部分加到它的上面如果最高位有进位则把进位丢掉。一般是先将关键字分割成位数相同的几段最后一段的位数可少一些段的位数取决于散列地址的位数由实际需要而定然后将它们的对应位叠加和舍去最高位进位作为散列地址。6、基数转换法将关键码值看成在另一个基数制上的表示然后把它转换成原来基数制的数再用数字分析法取其中的几位作为地址。一般取大于原来基数的数作转换的基数并且两个基数要是互质的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询