两者都一定的相似性,可以加快检索速度,是一种存储结构。
但是索引的方式相当于给一个本书加一个目录,这样子就可以快速找到每一个章节。好处就是增加检索速度,坏处就是增加了书的厚度,而且如果改变了书的内容,目录也要动态更新。
索引底层数据结构一般是B+树。
B+树的优点就是层数少,能够快速查找。当然也有缺点:就是插入的时候速度比顺序插入慢。
散列(哈希)可以不是连续地存储,它不是相当于一本书,而是通过某一个散列函数,把原本书的每一页放到某一本空白笔记本上。因为能通过关系查找到,也有目录,但是增加改动基本不用动态地改全部目录。
构建散列函数的方法:
1.直接寻址法
2.数字分析法
3.平方取中法
4.折叠法
5.随机法
6.除取余数法
哈希冲突:无限的数据会有有限的计算结果,即多对一的关系,称为哈希冲突。
解决哈希冲突的办法:
1.开放寻址法
①线性探查法;
②二次探查法;
2.链地址法
3.再散列法
4.建立公共溢出区