主要使用场景场景
- 主要用于需要比较的场景,比如串中或者集合中是否出现过另一个串和集合中的X.
- 在做题过程中在限定了大小(一般由如ASCII字符集,1000,10^ 4,10^ 5等)较小的范围出现的时候可以使用hash散列.
- 做查找是否含有||是否出现过非常好用.
定义
哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
一般而言这个哈希函数可以是由值对应到数组的下标,这个数组也就是散列表.复杂情况比较难弄
时间复杂度
生成一般ON查找可以做到O1
基本思想
转换储存,实际上也是加密方式的一种吧.
利弊分析
利
- 时间复杂度很快
- 大部分时候用一个数组就可以写成,比较简单.
弊
- 复杂起来可能比较难写,比如真的需要一个hashtable的场景