一、时间复杂度基础
- 时间复杂度是衡量算法效率的指标,用大O表示法(如O(1)、O(n)、O(n^2))。数值越小,算法效率越高。
- O(1):无循环的简单操作,如赋值、基本运算、数组下标访问。
- O(n):单层循环操作,时间消耗随n线性增长。
- O(n^2):嵌套双层循环操作,时间消耗随n平方增长。
二、哈希表底层结构与查找效率
- 哈希表底层物理结构是数组,利用数组下标访问的O(1)特性,实现哈希表查找的高效性。
三、哈希存储与哈希函数
- 存储数据时,通过**哈希函数(取模运算)**将数据映射到数组下标。例如数组长度为8时,数字5直接存在下标5的位置;数字8通过8 \% 8 = 0,存在下标0的位置。
四、哈希冲突
- 定义:不同数据经哈希函数映射后得到相同下标,导致冲突。如8、16、32对8取模都得0。
- 解决方法(链地址法):将哈希冲突的元素串联成链表,哈希表升级为链表数组(数组每个元素是链表头指针)。
五、负载因子与Rehash
- 负载因子:公式为 元素个数 / 数组长度 。当负载因子过大(如大于5),哈希表会出现大量长链表,查找效率退化。
- Rehash(重新哈希):数组扩容为原来的2倍,所有元素重新通过哈希函数映射,分散链表元素,避免长链表。
- 渐进式Rehash:避免一次性Rehash导致的性能波动,将Rehash过程分散到程序运行的多个阶段,逐步完成元素重新映射。
六、哈希表长度的优化
- 哈希表长度设计为2的幂,利用**位运算(与运算)**优化取模操作。因为x \% 2^n等价于x \& (2^n - 1),位运算效率高于取模运算。
面试常见问题之剖析哈希表
张小明
前端开发工程师
吃透联想服务器管理!本地 / SSH / 带外(BMC/IMM)三种方式实战指南
作为企业级 IT 基础设施的核心,联想服务器的高效管理直接影响业务稳定性。很多运维同学在接触联想服务器时,常会疑惑其管理方式的分类,本文就针对联想服务器最核心的三种管理方式 —— 本地管理、SSH 远程管理、带外(OOB)管理,进行全方位的实战解析,帮你彻底搞懂每种方式…
ollama
ollama.exe下载 https://modelscope.cn/models/Lixiang/ollama-release ollama run 在资源管理器地址栏输入 %USERPROFILE%\.ollama。 新建 config.json 文件,内容如下: { "registry": { "mirrors": { "r…
基于STM32单片机智能电子密码锁密码箱门禁无线摄像头设计套件25(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
基于STM32单片机智能电子密码锁密码箱门禁无线摄像头设计套件25(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 产品功能描述: 本系统由STM32F103C8T6单片机核心板、LCD1602显示、继电器驱动电路、按键电路及电源…
大学生 / 转行党必看!网安碎片化学习攻略,摸鱼通勤 30 分钟学完一个知识点
“早八挤地铁刷短视频,晚上躺床上刷论坛,月底发现网安书才翻了 10 页”—— 这是大学生小杨的学习现状;“上班摸鱼怕被老板抓,下班累到不想动,NISP 教材买了 3 个月还在第一章”—— 这是转行党老王的困境。 网安学习…
别信 35 岁魔咒!实施和运维并非青春饭,谣言该戳破了
在IT行业,“35岁危机”像一道悬在头顶的达摩克利斯之剑,让不少从业者焦虑:自己的岗位到底是不是“吃青春饭”?其中,实施工程师和运维工程师这两个高频出现在招聘需求里的岗位,常被拿来比较——有人说实施要…
程序员突围!突破瓶颈看这里,2026职业 10 大前景方向,网安对接开发技能,门槛极低
编程作为IT行业中不可或缺的职位,人才需求量也是只增不减的,要问2026年程序员的职业发展前景如何,随着防疫政策的放开,市场经济也会逐渐复苏。如今大数据、人工智能、物联网等领域的崛起,必然会使程序员有着良好的发展…