关于散列(hash)及散列函数
散列(hash哈希):
简单来说,散列函数将输入映射到数字,给定同样的输入总是得到同样的结果,不需要查找(平均情况下性能:常量时间);关键在于散列函数。
(之前误以为就是把数组下标和值及其个数等对应,然后要得到某个值的时候,去for循环查数组,总之创建添加大概是这样理解,但是关键是查找只需要常量时间,这是散列函数来达成的,而不是通过循环遍历来查找的)
LeetCode两数之和就可以用hash实现 https://leetcode.cn/leetbook/read/top-interview-questions-easy/x2jrse/ 详见官方题解。
具体参见算法图解第5章及11章提到的散列函数,实际使用编程语言提供的散列表实现就可以了(认为其性能良好即可),不用自己实现!
下图为算法图解5.5小结部分:
https://blog.csdn.net/chybin500/article/details/103913583