第19课:哈希思想
进度 0/24
🔑
哈希思想
一步定位的魔法,哈希让查找快到飞起!
📖知识引入
🧮哈希函数
把关键字变成数组下标的函数:hash(键) → 存放位置
🚪快递柜模型
取件码直接对应柜门号,一步开柜,不用挨个翻找
⚡O(1)理想
不发生冲突时,插入查找删除都近似常数时间,快得惊人
🧩取模散列
常用hash(x) = x % 质数,把大范围数映射到小空间
💡
取模尽量用大质数(如100003、1000007),让键分布更均匀,冲突更少
🔍最简单的哈希思想
// 把学号 % 10 映射到 10 个格子
int table[10]; // 下标 0~9 当柜门
int id1 = 202501; // hash = 202501 % 10 = 1
table[id1 % 10] = 95; // 成绩存进 1 号柜
int id2 = 202507; // hash = 202507 % 10 = 7
table[id2 % 10] = 88; // 成绩存进 7 号柜
// 查 202501 的成绩:一步定位 1 号柜
cout << table[202501 % 10] << endl; // 输出 95键经过哈希函数一步变下标,查找无需遍历
🎯小测验
第1题:哈希函数的作用是?
第2题:理想情况下哈希表查找的时间复杂度是?
第3题:202501 % 10 的结果是?
📝本课知识点
- ✓哈希函数=键变下标
- ✓理想状态查找O(1)
- ✓取模大质数分布更均匀
第19课完成!继续探索下一课吧 🚀
