數(shù)組和鏈表的區(qū)別

什么樣的“東西”可以稱之為哈希表?其實就是經(jīng)常想不起來卻刻在 DNA 里的知識點
數(shù)據(jù)結構三要素:
1,數(shù)據(jù)的邏輯結構:邏輯結構顧名思義就是邏輯上的結構,比如我們知道一棵二叉樹的非葉子節(jié)點會有左右與左右兩個子樹的樹根相連力试。
2,數(shù)據(jù)的物理結構:物理結構就是數(shù)據(jù)結構真正的存儲方式毛仪,二叉樹我們一般通過二叉鏈表存取,但是也能用數(shù)組存取对粪。這就是說一個邏輯結構可以對應不同的物理結構右冻。
3,數(shù)據(jù)的運算:就是可有對這個數(shù)據(jù)結構進行哪些操作,比如可以對二叉樹進行遍歷操作著拭,這就是一種運算纱扭。
把任意結構,任意長度的輸入儡遮,快速的映射成一個固定長度的輸出乳蛾,這個過程就叫哈希,實現(xiàn)這個功能的東西就叫哈希函數(shù)。
哈希函數(shù)需要滿足兩個性質(zhì):
對于相同的輸入肃叶,必須有相同的輸出忆首;
對于不同的輸入,允許有相同的輸出被环。

哈希表是解決查找問題的糙及,hashcode值就是你要找的數(shù)據(jù)所在的位置(下標),那個位置的值是value

數(shù)組:數(shù)組就是一塊連續(xù)的內(nèi)存空間筛欢。這個空間可以放在棧上浸锨,可以放在堆上。因為知道元素的大小版姑,再根據(jù)下標可以計算到元素在這塊連續(xù)的內(nèi)存中的位置柱搜。接著你就可以將你的元素保存到這塊連續(xù)的內(nèi)存的某個位置。這塊連續(xù)的內(nèi)存不可能無限的大剥险,所以要根據(jù)實際的情況來決定數(shù)組需要多大聪蘸。并且數(shù)組進行擴充的話,有可能會出現(xiàn)內(nèi)存拷貝的現(xiàn)象表制。健爬。因為你沒辦法知道你申請的那塊連續(xù)的內(nèi)存空間的后面的內(nèi)存有沒有人使用。
哈希表(HashSet):哈希表也稱散列表么介。原理就是通過哈希函數(shù)(下面使用hash()代替)計算元素的哈希值娜遵。計算出來的哈希值是32位的。當然壤短,我們可以把這32位的哈希值看成一個無符號的32位整形(下面使用uint32)设拟。最后,我們再創(chuàng)建一個key類型的數(shù)組(假設大小為8)久脯。這時候纳胧,假設我們要添加一個元素,我們就使用 hash(key)%8 計算出元素應該存儲在數(shù)組中的位置(hash(key)%8的范圍是0-7帘撰,不會使數(shù)組越界)跑慕。這時,key就與數(shù)組之間建立了一個映射關系骡和。當然相赁,不同的key計算(hash(key)%8)出來的結果(數(shù)組的下標)有可能是一樣的。例如先前這個位置已經(jīng)有元素存儲了慰于,現(xiàn)在又有個元素映射到這個位置钮科,我們怎么辦?這種情況我們稱為哈希沖突婆赠,解決的方式有2種绵脯。 第1種為鏈式存儲法佳励,也就是數(shù)組的每個元素都是一個鏈表,來記錄映射到該下標的所有元素蛆挫。 第2種為二度哈希赃承,也就是使用哈希后加上一定的計算,在當前的位置下再計算另一個位置出來悴侵。當然瞧剖,無論哪種,接下來的查找都是線性的可免。哈希表一般都是HashSet<TKey>抓于,可以看到只有key,一般都用于存儲元素浇借,并且可以快速的查找元素在集合中是否存在捉撮。字典(Dictionary):字典也是散列表的一種,跟上面說的哈希表唯一不同的就是妇垢。哈希表使用hash(key)%8得到數(shù)組存儲位置后巾遭,它存儲的是key。闯估。而字典存儲的是value灼舍,僅此區(qū)別而已。所以字典是Dictionary<TKey,TValue>睬愤。片仿。他的作用就是可以根據(jù)key快速的查找到value。

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

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末尤辱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子厢岂,更是在濱河造成了極大的恐慌光督,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件塔粒,死亡現(xiàn)場離奇詭異结借,居然都是意外死亡,警方通過查閱死者的電腦和手機卒茬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門船老,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人圃酵,你說我怎么就攤上這事柳畔。” “怎么了郭赐?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵薪韩,是天一觀的道長。 經(jīng)常有香客問我,道長俘陷,這世上最難降的妖魔是什么罗捎? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮拉盾,結果婚禮上桨菜,老公的妹妹穿的比我還像新娘。我一直安慰自己捉偏,他們只是感情好雷激,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著告私,像睡著了一般屎暇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驻粟,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天根悼,我揣著相機與錄音,去河邊找鬼蜀撑。 笑死挤巡,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的酷麦。 我是一名探鬼主播矿卑,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼沃饶!你這毒婦竟也來了母廷?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤糊肤,失蹤者是張志新(化名)和其女友劉穎琴昆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體馆揉,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡业舍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了升酣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舷暮。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖噩茄,靈堂內(nèi)的尸體忽然破棺而出下面,到底是詐尸還是另有隱情,我是刑警寧澤巢墅,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布诸狭,位于F島的核電站券膀,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏驯遇。R本人自食惡果不足惜芹彬,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望叉庐。 院中可真熱鬧舒帮,春花似錦、人聲如沸陡叠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽枉阵。三九已至译红,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間兴溜,已是汗流浹背侦厚。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拙徽,地道東北人刨沦。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像膘怕,于是被迫代替她去往敵國和親想诅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一岛心、認知.需求.營銷 l来破、認知是需求前提與條件,需求是營銷的原點鹉梨,過去是讳癌,互聯(lián)網(wǎng)移動互聯(lián)網(wǎng)時代更是如此。 2存皂、認知...
    藍狙策劃閱讀 249評論 0 0
  • 星期一,正式開始上課逢艘,也回到了正常的學習日常旦袋,自己靠著之前遺留的小bug,也是很快就恢復了狀態(tài)它改。班里有兩個原來胖胖...
    弓煒杰_三月閱讀 143評論 0 1
  • 緒論 數(shù)據(jù)結構相關的概念 數(shù)據(jù):是描述客觀事物屬性的數(shù)疤孕、字符及所有能輸入到計算機中并能被計算機程序識別和處理的符號...
    jueti閱讀 867評論 0 0
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友央拖。感恩相遇祭阀!感恩不離不棄鹉戚。 中午開了第一次的黨會,身份的轉變要...
    迷月閃星情閱讀 10,551評論 0 11
  • 彩排完专控,天已黑
    劉凱書法閱讀 4,187評論 1 3