🐵指尖猴全新升级
第19课:哈希思想
🔑

哈希思想

一步定位的魔法,哈希让查找快到飞起!

📖知识引入

🧮哈希函数
把关键字变成数组下标的函数: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课完成!继续探索下一课吧 🚀