数组和链表的区别

什么样的“东西”可以称之为哈希表?其实就是经常想不起来却刻在 DNA 里的知识点
数据结构三要素:
1,数据的逻辑结构:逻辑结构顾名思义就是逻辑上的结构,比如我们知道一棵二叉树的非叶子节点会有左右与左右两个子树的树根相连。
2,数据的物理结构:物理结构就是数据结构真正的存储方式,二叉树我们一般通过二叉链表存取,但是也能用数组存取。这就是说一个逻辑结构可以对应不同的物理结构。
3,数据的运算:就是可有对这个数据结构进行哪些操作,比如可以对二叉树进行遍历操作,这就是一种运算。
把任意结构,任意长度的输入,快速的映射成一个固定长度的输出,这个过程就叫哈希,实现这个功能的东西就叫哈希函数。
哈希函数需要满足两个性质:
对于相同的输入,必须有相同的输出;
对于不同的输入,允许有相同的输出。

哈希表是解决查找问题的,hashcode值就是你要找的数据所在的位置(下标),那个位置的值是value

数组:数组就是一块连续的内存空间。这个空间可以放在栈上,可以放在堆上。因为知道元素的大小,再根据下标可以计算到元素在这块连续的内存中的位置。接着你就可以将你的元素保存到这块连续的内存的某个位置。这块连续的内存不可能无限的大,所以要根据实际的情况来决定数组需要多大。并且数组进行扩充的话,有可能会出现内存拷贝的现象。。因为你没办法知道你申请的那块连续的内存空间的后面的内存有没有人使用。
哈希表(HashSet):哈希表也称散列表。原理就是通过哈希函数(下面使用hash()代替)计算元素的哈希值。计算出来的哈希值是32位的。当然,我们可以把这32位的哈希值看成一个无符号的32位整形(下面使用uint32)。最后,我们再创建一个key类型的数组(假设大小为8)。这时候,假设我们要添加一个元素,我们就使用 hash(key)%8 计算出元素应该存储在数组中的位置(hash(key)%8的范围是0-7,不会使数组越界)。这时,key就与数组之间建立了一个映射关系。当然,不同的key计算(hash(key)%8)出来的结果(数组的下标)有可能是一样的。例如先前这个位置已经有元素存储了,现在又有个元素映射到这个位置,我们怎么办?这种情况我们称为哈希冲突,解决的方式有2种。 第1种为链式存储法,也就是数组的每个元素都是一个链表,来记录映射到该下标的所有元素。 第2种为二度哈希,也就是使用哈希后加上一定的计算,在当前的位置下再计算另一个位置出来。当然,无论哪种,接下来的查找都是线性的。哈希表一般都是HashSet<TKey>,可以看到只有key,一般都用于存储元素,并且可以快速的查找元素在集合中是否存在。字典(Dictionary):字典也是散列表的一种,跟上面说的哈希表唯一不同的就是。哈希表使用hash(key)%8得到数组存储位置后,它存储的是key。。而字典存储的是value,仅此区别而已。所以字典是Dictionary<TKey,TValue>。。他的作用就是可以根据key快速的查找到value。

https://zhuanlan.zhihu.com/p/78107140
https://zhuanlan.zhihu.com/p/52440208

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容

  • 一、认知.需求.营销 l、认知是需求前提与条件,需求是营销的原点,过去是,互联网移动互联网时代更是如此。 2、认知...
    蓝狙策划阅读 219评论 0 0
  • 星期一,正式开始上课,也回到了正常的学习日常,自己靠着之前遗留的小bug,也是很快就恢复了状态。班里有两个原来胖胖...
    弓炜杰_三月阅读 134评论 0 1
  • 绪论 数据结构相关的概念 数据:是描述客观事物属性的数、字符及所有能输入到计算机中并能被计算机程序识别和处理的符号...
    jueti阅读 794评论 0 0
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,498评论 0 11
  • 彩排完,天已黑
    刘凯书法阅读 4,146评论 1 3