数据结构里的间界叠加是什么意思?
一、数据结构里的间界叠加
数据结构里的间界叠加是间界叠加:从一端到另一端沿各部分分界来回折叠后,最后一位对齐相加。如:key=2534635870三位一分界。间界叠加:253+364+587+50(即奇数段正序,偶数段反序)。
哈希表定义:也叫散列表。根据设定的哈希函数及处理冲突的方法,将元素存储在一段有限的连续空间中。即存储地址H(key)与关键字key的关系构建。
直接定址法:利用线性函数来设置。H(key)=a*key+b;其中a≠0,b为常数。
举例:统计各年龄段的人口,用直接定址法设定哈希函数。
数字分析法:若关键字是x进制数,且可预知可能出现的所有关键字值,则可以去关键字的若干位构成哈希地址函数。
举例:
平方取中法:若关键字较短,则可以先平方再类似上面,取个别的位数为哈希地址。和上面差不多,就不举例了。
折叠法:分为移位叠加和间界叠加。将关键字值分割成位数相同的几部分,然后取这几部分的叠加和(舍弃进位)作为哈希地址。
1)移位叠加:图书馆编号有0-442-20586-4,即0442205864,按此编号构造哈希地址:将该编号分成三部分,将每四位对齐后叠加,进位舍弃,得出来的数据就是哈希地址。
2)间界叠加:先将低四位写上,再将第二部分倒写对齐,第三部分又与名列前茅部分一样,如此间界的对齐,得出的哈希地址就是间界叠加。
除留余数法:设有一组关键字,试用除留余数法求设计哈希函数。关键字组:(19,14,23,01,68,20,84,27,55,11,10,79,12,39,21)。
可以设置为H(key)=key%13;为什么取13?我们可以假设它取9,得出的余数分别为1 5 5 1 5 2 3 0 1 2 1 7 3 3 3。可以看出1 3 5的余数非常多,当它映射到存储地址时,会更容易的造成冲突。所以我们在选择取余数时,一般取质数,让它的冲突尽可能的少。
延伸阅读:
二、线性结构是什么
简单地说,线性结构是一个数据元素的有序(次序)集合。它有四个基本特征:1)集合中必存在少数的一个“名列前茅个元素”。
2)集合中必存在少数的一个“最后的元素”。
3)除最后元素之外,其它数据元素均有少数的“后继”。
4)除名列前茅元素之外,其它数据元素均有少数的“前驱”。数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。如(a1,a2,a3,…..,an),a1 为名列前茅个元素,an 为最后一个元素,此集合即为一个线性结构的集合。

猜你喜欢LIKE
相关推荐HOT
更多>>
为什么在中断里不能sleep?
一、在中断里不能sleep的原因“为什么在中断里不能sleep”,即“为什么在Linux里,ISR被设计成不能睡眠”。sleep会导致call scheduler以选择另...详情>>
2023-10-14 20:44:46
Jupyter Notebook为什么是现代Python的必学技术?
1、整合所有资源在软件开发过程中,频繁地切换窗口会影响开发效率。举个例子,假设你需要切换窗口去看一些文档,再切换窗口去用另一个工具画图...详情>>
2023-10-14 20:11:17
Python中is和==的区别?
一、Python中is和==的区别Python 中的 is 和 == 的主要区别是== 操作符比较两个对象的值是否相等,即比较它们所包含的数据是否相同;is 操作符...详情>>
2023-10-14 18:11:35
mac任务管理器快捷键是什么?
一、mac任务管理器快捷键在Mac OS X操作系统中,任务管理器被称为活动监视器(Activity Monitor),它允许用户查看和管理正在运行的进程和资源...详情>>
2023-10-14 17:46:41热门推荐
Python10行以内代码能有什么高端操作?
沸html form标签的action属性是什么?
热TCP、UDP的区别是什么,两者在什么时候使用?
热C++中引用和指针有哪些区别?
新epoll、poll、select有哪些区别?
为什么我们需要Laravel IoC容器?
为什么在中断里不能sleep?
Jupyter Notebook为什么是现代Python的必学技术?
Promise是什么?
Python有哪些优势?
项目财务管理包括什么?
Python中is和==的区别?
mac任务管理器快捷键是什么?
Java开发为什么要用IoC和AOP?
技术干货






