零、前言
「 数据结构 」 和 「 算法 」 是密不可分的,两者往往是「 相辅相成 」的存在,所以,在学习 「 数据结构 」 的过程中,不免会遇到各种「 算法 」。
数据结构 常用的操作一般为:「 增 」「 删 」「 改 」「 查 」。基本上所有的数据结构都是围绕这几个操作进行展开的。
那么这篇文章,作者将用 「 三张动图 」 来阐述一种 「 均摊 O(1) 」 的数据结构
「 哈希表 」
![]()
哈希表常用的方法是 开放定址法 和 链地址法:
开放定址法
![]()
链地址法
看不懂没有关系,我会把它拆开来一个一个讲,首先来看一下今天要学习的内容目录。
一、哈希表的概念
1、查找算法
当我们在一个 链表 或者 顺序表 中 查找 一个数据元素 是否存在 的时候,唯一的方法就是遍历整个表,这种方法称为 线性枚举。

如果这时候,顺序表是有序的情况下,我们可以采用折半的方式去查找,这种方法称为 二分枚举。
线性枚举 的时间复杂度为 O ( n ) O(n) O(n
本文通过三张动图深入浅出地介绍了哈希表这一数据结构,包括哈希表的概念、常用哈希函数、哈希冲突的解决方法。哈希表是一种平均时间复杂度为O(1)的数据结构,通过哈希函数将关键字映射为存储位置。文章还探讨了直接定址法、平方取中法、折叠法、除留余数法等哈希函数以及开放定址法、链地址法等冲突解决策略。此外,文章提供了哈希表的C语言实现示例。

订阅专栏 解锁全文
9923

被折叠的 条评论
为什么被折叠?



