你可以把哈希函数理解为一个“地址计算器”,它的设计原则是“快”和“散”,
不一定是Md5一种加密哈希函数
对于哈希表来说,首要目标是速度和均匀分布,而不是加密安全性。因此,它通常会使用更简单、计算更快的哈希函数。
● 简单示例:对于整数键,一个非常常见的哈希函数就是“除留余数法”,例如 h(key) = key % 数组大小 。
● 复杂示例:对于字符串,可能会使用像 h(s) = (sa^(n-1) + sa^(n-2) + ... + s[n-1]) % 数组大小 这样的多项式哈希函数。
在理想情况下,哈希表的查找、插入和删除操作的平均时间复杂度均为 O(1),
空间换时间
列表通常需要遍历整个列表,时间复杂度为 O(n)。当数据量(n)很大时,速度会显著变慢。