网易首页 > 网易号 > 正文 申请入驻

计算机入门必备数据结构——散列表

0
分享至

Hi!各位宝宝朋友们,好久不见了~国庆节中秋节过的快乐吗?我的双节在出差路上度过,你们有什么快乐的事情可以分享给我哦~让我也开心一下嘿嘿

由于工作比较忙,学习也落下不少了。趁着今天有点空,我们开始继续学习,学习是一个循序渐进的过程,切忌囫囵吞枣,只要数量,不看质量。从今天开始哪怕只学习一节甚至一个知识点,我也希望能把它学会并能给大家讲出来,我觉得只有这样今天的学习才是有效的,好了,闲言少叙,我们直接进入正题。

今天我们学习的数据结构叫做散列表,起初我看这个名字还感觉挺陌生的,以为是一个新的数据结构,原来它就是我们所学的哈希表。散列表也称哈希表是最有用的基本数据结构之一,我们将要学习他的内部机制:实现,冲突和散列函数。

先举一个例子引出哈希表的概念:假设你在一家超市上班,有顾客来买东西时,肯定会询问你某种东西的价格,每种东西都有自己不同的价格,细心的人可以发现,我们买的那些需要称重的东西,称旁边贴了一张纸,上面写着各种商品的价格,刚来上班的阿姨肯定会在这张纸上查找价格代码,如果纸上的内容不是排序好的,阿姨有可能为查找一个苹果的价格看遍整张纸,这需要花费很长时间。如果是按字母顺序排序好的,阿姨可以利用我们之前学习过的二分查找法来找出苹果的价格,时间复杂度就会大大减少。但这样每次就查找,不仅是阿姨烦对于顾客等待的时间就会变得更长,对于顾客的体验就不是很好,下次就可能不回来这个超市。

这时就需要一个老手阿姨,把每一种物品的价格都记得很清楚,随便问她就能立马说出价格。不管商品有多少,这位老阿姨都能快速报出任何商品的价格,时间复杂度为O(1),速度比二分查找都快。如果你想在程序中实现这么快的查找速度,这是散列函数的用武之地。

1、 散列函数

散列函数是这样的函数,即无论给它什么数据,它都还你一个数字。

散列函数

用专业术语来讲,散列函数是"将输入映射到数字"。散列函数不是没有原则的输出,它其实还是必须要满足一些要求的。

· 它必须是一致的。例如,假设你输入apple时输出的是4,那么每次输入apple时,得到的都必须为4。如果不是这样,散列表将毫无用处。

· 它应将不同的输入映射到不同的数字。例如,如果一个散列函数不管输入是什么都返回1,它就不是好的散列函数,最理想的情况是,将不同的输入映射到不同的数字。

我们首先来创建一个空数组,我们将在这个数组上存储商品的价格,将苹果作为输入交给散列函数,散列函数的输出为2,因此我们将苹果的价格存储到数组的索引2处,依次类推,数组中保存好了牛奶、橘子、苹果、梨子的价格之后,如果我们想知道苹果的价格,无需在数组中查找,只需交给散列函数,将apple作为输入输出2,于是可以在数组的索引2处找到苹果的价格。

散列函数之所以可以这样,具体原因如下:

· 散列函数总是将同样的输入映射到相同的索引。

· 散列函数将不同的输入映射到不同的索引。

· 散列函数知道数组有多大,只返回有效索引

使用散列函数和数组我们就可以创建了一种被称为"散列表"的数据结构。散列表是目前学习的第一种包含额外逻辑的数据结构,数组和链表都被直接映射到内存,但散列表更复杂,它需使用散列函数来确定元素的存储位置。

散列表在编程语言中几乎不用自身去实现,比如java学到map或者hashmap,C#学到的dictionary等等。

比如用C#的一段代码:

static void Main(string[] args)
{ //定义键值对 Dictionary dic = new Dictionary();

//添加数据

dic.Add("牛奶", "¥2");

dic.Add("橘子", "¥3");
dic.Add("苹果", "¥4");
dic.Add("梨子", "¥5");

//循环接收

while (true)

{

Console.Write("请输入需要查询的商品价格:");

//接收用户输入

string input = Console.ReadLine();

Console.WriteLine("您查询的" + input + "的价格为:{0}", dic[input]);

//Console.ReadKey();

}

}

我们再来看看运行结果:

运行结果

你学会了吗,但如果我们要查询的东西不在字典,我们看一下它会出现什么异常:

运行异常

当然对于这种情况我们可以使用try Catch来进行优化解决。由此我们学到了散列表是由键和值组成,散列表将键映射到值。好了,今天的学习就到这块,明天我们来学习散列表的使用示例,不要走开,敬请期待~

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
记者:赛后于根伟脸上没有任何高兴表情,因为比赛太惨烈了

记者:赛后于根伟脸上没有任何高兴表情,因为比赛太惨烈了

懂球帝
2026-04-25 23:05:02
东风导弹泄密案!间谍郭万钧一家三口,全部被处以死刑

东风导弹泄密案!间谍郭万钧一家三口,全部被处以死刑

番外行
2026-03-31 08:28:28
特朗普发长文攻击华裔和印度裔移民,你说集中营还远吗?

特朗普发长文攻击华裔和印度裔移民,你说集中营还远吗?

谈芯说科技
2026-04-24 22:05:35
25万吨!美国对华封锁打响,解放军在南海集结世界最强航母战斗群

25万吨!美国对华封锁打响,解放军在南海集结世界最强航母战斗群

军机Talk
2026-04-24 17:32:10
花呗、白条、月付等面临重大调整

花呗、白条、月付等面临重大调整

第一财经资讯
2026-04-25 12:45:38
98年我在东莞当保安,一个舞女为躲追杀藏我宿舍,竟是卧底女警

98年我在东莞当保安,一个舞女为躲追杀藏我宿舍,竟是卧底女警

千秋文化
2026-04-22 20:17:38
比亚迪全新大唐卖爆了,全网多渠道订单喜报刷屏!

比亚迪全新大唐卖爆了,全网多渠道订单喜报刷屏!

新浪财经
2026-04-25 18:11:07
火箭队记开喷杜兰特未现身场边:他可能放弃火箭了

火箭队记开喷杜兰特未现身场边:他可能放弃火箭了

体坛周报
2026-04-25 15:38:11
震惊!洛阳某职业学院高调官宣10名毕业生入职肯德基,引发争议

震惊!洛阳某职业学院高调官宣10名毕业生入职肯德基,引发争议

火山詩话
2026-04-24 16:29:11
华人再破硅谷天花板!AI黑马新任CTO,中科大80后

华人再破硅谷天花板!AI黑马新任CTO,中科大80后

量子位
2026-04-25 11:47:08
湖南湘西一父亲投诉医院救护车多次谎称已出车,21分钟才发车,致1岁幼子贻误最佳抢救时机身亡;官方通报:高度重视,已成立联合调查组

湖南湘西一父亲投诉医院救护车多次谎称已出车,21分钟才发车,致1岁幼子贻误最佳抢救时机身亡;官方通报:高度重视,已成立联合调查组

大风新闻
2026-04-25 21:52:25
广东3消息!胡明轩正式发声,徐昕回应直面杜锋,徐杰获MVP候选

广东3消息!胡明轩正式发声,徐昕回应直面杜锋,徐杰获MVP候选

多特体育说
2026-04-25 11:24:28
广东民警当街抓捕在逃人员:路人大哥一伸脚,嫌疑人顿时摔趴在民警跟前

广东民警当街抓捕在逃人员:路人大哥一伸脚,嫌疑人顿时摔趴在民警跟前

环球网资讯
2026-04-25 18:20:16
马苏深夜哽咽“一个人很久了”!孔令辉隔空回应:是我没顾上她

马苏深夜哽咽“一个人很久了”!孔令辉隔空回应:是我没顾上她

时间巡查
2026-04-25 16:06:47
联合国变天?秘书长候选人出现,巴西力挺,中方:不准有官僚主义

联合国变天?秘书长候选人出现,巴西力挺,中方:不准有官僚主义

阿纂看事
2026-04-25 11:12:08
嗜赌成性只是冰山一角,婚内出轨、睡有妇之夫,体坛丑闻毁三观

嗜赌成性只是冰山一角,婚内出轨、睡有妇之夫,体坛丑闻毁三观

阿讯说天下
2026-04-25 11:15:04
塞鸟:对手门前4脚打门就是4个进球,这样的结果我们很难接受

塞鸟:对手门前4脚打门就是4个进球,这样的结果我们很难接受

懂球帝
2026-04-25 22:13:16
黄宗泽牙龈萎缩影响颜值,再帅的港圈男神,也扛不住一口牙毁所有

黄宗泽牙龈萎缩影响颜值,再帅的港圈男神,也扛不住一口牙毁所有

观鱼听雨
2026-04-24 23:08:32
中超首次大屏幕直播,工体现场屏幕实时呈现京津德比

中超首次大屏幕直播,工体现场屏幕实时呈现京津德比

懂球帝
2026-04-25 21:08:14
山西村支书驾铲车掩埋村民,现场有多名民警。被埋村民仍在住院

山西村支书驾铲车掩埋村民,现场有多名民警。被埋村民仍在住院

听心堂
2026-04-24 21:15:50
2026-04-26 00:27:00
努力的浩浩
努力的浩浩
一起交流技术上的那点事
73文章数 125关注度
往期回顾 全部

科技要闻

DeepSeek V4发布!黄仁勋预言的"灾难"降临

头条要闻

媒体:美军在中东罕见高密度集结 伊朗开始调整战术

头条要闻

媒体:美军在中东罕见高密度集结 伊朗开始调整战术

体育要闻

那一刻开始,两支球队的命运悄然改变了

娱乐要闻

《我们的爸爸2》第一季完美爸爸翻车了

财经要闻

90%订单消失,中东旺季没了

汽车要闻

2026款乐道L90亮相北京车展 乐道L80正式官宣

态度原创

教育
数码
本地
游戏
旅游

教育要闻

十大优势专业,数学单科加权……一文看懂川大2026强基计划

数码要闻

联发科亮相2026北京车展:主动式智能体座舱解决方案

本地新闻

云游中国|逛世界风筝都 留学生探秘中国传统文化

金发美少女魔王和我是邻居!新游首曝美女角色太吸睛

旅游要闻

五一悠享宝山滨江|活力全开·追风运动之旅

无障碍浏览 进入关怀版