散列(hash)
- 以空间换时间,建立映射函数,将元素通过一个函数转换为整数,使得该整数可以尽量唯一地代表这个元素
一、整数散列
1.类型
-
给定N个数,M个数,问M个数中的数是否在N个数中出现过
- 以N个数中的数作为数组下标,记录N个数中的数的出现情况
-
给定N个数,M个数,问M个数中的数在N数中出现的个数
- 以N个数中的数作为数组下标,记录N个数中的数的出现情况
2.散列函数
- 常用函数:直接定址法、平方取中法、除留余数法
- 解决冲突的方法:线性探查法、平方探查法、链地址法
二、字符串散列
- 散列函数:将字符串转换为整数,使得该整数尽可能地代表字符串S
- 思路:将字符串对应到26进制(大写字母)、52进制(大小写字母)、62进制(大小写字母加数字),然后进行进制转换,转换到十进制
- 例:
参考-算法笔记-胡凡