关于散列(hash)及散列函数

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

哈希函数的一些介绍:如:SHA( secure hash algorithm)等
https://blog.csdn.net/chybin500/article/details/103913583
全部评论
C语言可使用uthash的散列表实现,可参考:https://blog.csdn.net/a123441/article/details/89045293 ;使用介绍及下载地址:https://troydhanson.github.io/uthash/
点赞 回复 分享
发布于 2022-10-10 15:23 陕西
编译例如:把uthash.h和main.c放在同一目录下,main.c中添加#include "uthash.h",命令行输入gcc main.c -o main即可。 下载的文件中tests目录下有使用示例。
点赞 回复 分享
发布于 2022-10-10 16:43 陕西

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务