数据结构里的间界叠加是什么意思?
一、数据结构里的间界叠加
数据结构里的间界叠加是间界叠加:从一端到另一端沿各部分分界来回折叠后,最后一位对齐相加。如: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??梢钥闯? 3 5的余数非常多,当它映射到存储地址时,会更容易的造成冲突。所以我们在选择取余数时,一般取质数,让它的冲突尽可能的少。
延伸阅读:
二、线性结构是什么
简单地说,线性结构是一个数据元素的有序(次序)集合。它有四个基本特征:1)集合中必存在少数的一个“名列前茅个元素”。
2)集合中必存在少数的一个“最后的元素”。
3)除最后元素之外,其它数据元素均有少数的“后继”。
4)除名列前茅元素之外,其它数据元素均有少数的“前驱”。数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。如(a1,a2,a3,…..,an),a1 为名列前茅个元素,an 为最后一个元素,此集合即为一个线性结构的集合。

相关推荐HOT
更多>>
php用什么编辑器编程比较好?
一、php比较好的编辑器1.SublimeText3工具简介:Sublime Text是一款目前非常流行的代码编辑器优点是:体积适中,40M左右,运行流畅,有丰富的插...详情>>
2023-10-17 12:50:13
Linux系统函数read()/write()/pread()/pwrite()有什么区别?
一、Linux系统函数read()/write()/pread()/pwrite()的区别read() 和 write():这两个函数分别用于从文件中读取数据和向文件写入数据。它们基于...详情>>
2023-10-17 10:27:08
什么是vpn?
一、vpn概念VPN即虚拟专用网,指通过VPN技术在公有网络中构建专用的虚拟网络。vpn被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全...详情>>
2023-10-17 09:09:19
关键字测试用例怎么编写?
一、关键字测试用例的编写1.序号a.简单、少数。2.测试说明或称测试点、检查点、测试概述、用例概述、用例说明:用一句话对测试用例进行概述?a....详情>>
2023-10-17 07:51:01热门推荐
怎么管控项目进度?
沸php用什么编辑器编程比较好?
热Python的a//b和int(a/b)的区别?
热JDK、JRE、JVM有什么区别?
新JS正则中exec与match有哪些区别?
ASM与JAVASSIST有什么区别?
python能用来做什么?
什么软件可以打开zip格式文件?
无锁队列解决了什么问题?
中序遍历的中序是什么意思?
Linux系统函数read()/write()/pread()/pwrite()有什么区别?
Swift加括号的计算变量是什么?
为什么要把Dagger2、MVP以及Rxjava引入项目中?
Web逆向、软件逆向、安卓逆向、APP逆向是什么?