1.数组的优势/劣势
数组的内存空间是连续的
特点:索引速度快
劣势:增加、删除数据时,浪费性能
2.链表的优势/劣势
链表不是连续的内存,每一块内存中有一个引用保存下一个内存的地址。
优势:增加、删除数据时,效率高
劣势:如果要访问最后一个元素,只能从头依次访问每一个内存,查询效率低
3.有没有一种方式整合两种数据的优势?
散列表。
整合了数组的快速索引,和链表的动态扩容
4.什么是哈希?
核心理论:Hash也称散列、哈希,基本理论就是把任意长度的输入,通过Hash算法变成固定长度的输出。
这个映射的规则就是对应的Hash算法,而原始数据映射后的二进制串就是哈希值。
Hash的特点:
- 从hash值不可以反向推导出原始的数据
- 输入的数据的微小变化会得到完全不同的hash值,相同的数据会得到相同的值
- 哈希算法的执行效率高效,长的文本也能快速计算出哈希值。
- hash算法的冲突概率要小
由于hash的原理是将输入空间的值映射成hash空间内,而hash值的空间远小于输入的空间。
根据抽屉原理,一定会在不同的输入被映射成相同输出情况。
抽屉原理:桌上有十个苹果 ,要把这十个苹果放到九个抽屉里,无论怎么放,我们会发现至少会有一个抽屉里面放不少于两个苹果。
这一现象就是我们所说的“抽屉原理”
来源:CSDN
作者:梨子果果哟
链接:https://blog.csdn.net/qq_42931883/article/details/104280325