散列(Hash)
基本概念
-
散列:将任意长度的数据(键值)通过散列函数映射为固定长度的值(散列值/哈希值)。
-
核心目标:快速定位数据,减少存储和查找的时间复杂度(理想情况下为 O(1))。
典型应用场景:
-
数据库索引
-
哈希表(Hash Table)实现键值对存储
-
数据完整性验证(如文件校验)
-
密码存储(如加密哈希)
函数特点
散列函数的设计直接影响散列的效率和安全性,以下是其主要特点:
-
确定性:对于相同的输入数据,散列函数总是产生相同的散列值。例如,对文本“Hello”使用某个散列函数(如MD5或SHA-1),每次计算得到的散列值都一致。
-
高效性:能够快速地计算出散列值,即使面对较大的数据量(如大文件或长字符串),也能在较短时间内完成计算,通常时间复杂度为 O(1) 或接近 O(1)。
-
均匀分布:理想的散列函数应将不同的输入数据均匀地映射到散列值空间中,减少散列冲突的发生。这种均匀性对于哈希表的性能至关重要。<