11、哈希表:高效数据存储与查找的利器(上)

哈希表:高效数据存储与查找的利器(上)

1. 哈希表基础概念

哈希表是由成对的值组成的列表。每一对中的第一个元素称为键(key),第二个元素称为值(value)。键和值之间存在着重要的关联。例如,在快餐菜单的例子中,字符串 “french fries” 是键,0.75 是值,它们成对出现表示薯条的价格是 75 美分。

在 Ruby 中,可以使用以下语法来查找键对应的值:

menu["french fries"]

上述代码将返回值 0.75。在哈希表中查找值的平均效率为 O(1),通常只需要一步操作。

2. 哈希函数

哈希函数是将字符转换为数字的代码。例如,一种简单的将字母映射到数字的方法是:
| 字母 | 数字 |
| ---- | ---- |
| A | 1 |
| B | 2 |
| C | 3 |
| D | 4 |
| E | 5 |
| … | … |

根据这个规则,ACE 转换为 135,CAB 转换为 312,DAB 转换为 412,BAD 转换为 214。这种将字符转换为数字的过程称为哈希(hashing),用于转换的代码就是哈希函数。

除了上述简单的映射,还有其他类型的哈希函数。例如:
- 求和哈希函数 :将每个字母对应的数字相加。以 BAD 为例,先转换为 214,然后计算 2 + 1 + 4 = 7。
- 乘积哈希函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值