日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > > 充電吧
[導(dǎo)讀]天天AC,日日驚喜。每天學(xué)點(diǎn)算法,每天進(jìn)步一點(diǎn)點(diǎn)。1.哈希表的定義 ? ? ? 散列表(Hash table,也叫哈希表),是根據(jù)關(guān)鍵字(Key value)而直接訪問(wèn)在內(nèi)存存儲(chǔ)位置的數(shù)據(jù)結(jié)構(gòu)。也

天天AC,日日驚喜。每天學(xué)點(diǎn)算法,每天進(jìn)步一點(diǎn)點(diǎn)。

1.哈希表的定義 ? ? ? 散列表(Hash table,也叫哈希表),是根據(jù)關(guān)鍵字(Key value)而直接訪問(wèn)在內(nèi)存存儲(chǔ)位置的數(shù)據(jù)結(jié)構(gòu)。也就是說(shuō),它通過(guò)把鍵值通過(guò)一個(gè)函數(shù)的計(jì)算,映射到表中一個(gè)位置來(lái)訪問(wèn)記錄,這加快了查找速度。這個(gè)映射函數(shù)稱做散列函數(shù),存放記錄的數(shù)組稱做散列表。(維基)

? ? ? 個(gè)人的理解:舉個(gè)例子,你想去圖書(shū)館找本書(shū),你不會(huì)從第一本找到最后一本,你會(huì)看下那本書(shū)是歸為小說(shuō)類(lèi)還是 IT 類(lèi),然后直接去那一類(lèi)里面查找,哈希表就相當(dāng)于圖書(shū)的歸類(lèi)。 ? ? ? 哈希表和數(shù)組的區(qū)別:可以想象一下,你通過(guò)數(shù)組下標(biāo)直接去找到數(shù)組的值,而哈希表是根據(jù)關(guān)鍵字 k ,計(jì)算 f(k)去找到值。 ? ? ? 哈希表結(jié)構(gòu)上介于鏈表和二叉樹(shù)之間,哈希表是一個(gè)固定大小的數(shù)組,數(shù)組的每個(gè)元素是一個(gè)鏈表(單向或雙向)的頭指針。如果Key一樣,則在一起,如果Key不一樣,則不在一起。哈希表的查詢是飛快的。因?yàn)樗恍枰獜念^搜索,它利用Key的“哈希算法”直接定位,查找非???,各種數(shù)據(jù)庫(kù)中的數(shù)據(jù)結(jié)構(gòu)基本都是它。但帶來(lái)的問(wèn)題是,哈希表的尺寸、哈希算法。 若關(guān)鍵字為,則其值存放在的存儲(chǔ)位置上。由此,不需比較便可直接取得所查記錄。稱這個(gè)對(duì)應(yīng)關(guān)系為散列函數(shù)(Hash function),按這個(gè)思想建立的表為散列表。對(duì)不同的關(guān)鍵字可能得到同一散列地址,即,而,這種現(xiàn)象稱碰撞(Collision)。具有相同函數(shù)值的關(guān)鍵字對(duì)該散列函數(shù)來(lái)說(shuō)稱做同義詞。綜上所述,根據(jù)散列函數(shù)和處理碰撞的方法將一組關(guān)鍵字映象到一個(gè)有限的連續(xù)的地址集(區(qū)間)上,并以關(guān)鍵字在地址集中的“象”作為記錄在表中的存儲(chǔ)位置,這種表便稱為散列表,這一映象過(guò)程稱為散列造表或散列,所得的存儲(chǔ)位置稱散列地址。若對(duì)于關(guān)鍵字集合中的任一個(gè)關(guān)鍵字,經(jīng)散列函數(shù)映象到地址集合中任何一個(gè)地址的概率是相等的,則稱此類(lèi)散列函數(shù)為均勻散列函數(shù)(Uniform Hash function),這就是使關(guān)鍵字經(jīng)過(guò)散列函數(shù)得到一個(gè)“隨機(jī)的地址”,從而減少碰撞。2.構(gòu)造散列函數(shù)

散列函數(shù)能使對(duì)一個(gè)數(shù)據(jù)序列的訪問(wèn)過(guò)程更加迅速有效,通過(guò)散列函數(shù),數(shù)據(jù)元素將被更快定位。

直接尋址法:取關(guān)鍵字或關(guān)鍵字的某個(gè)線性函數(shù)值為散列地址。即或,其中為常數(shù)(這種散列函數(shù)叫做自身函數(shù))數(shù)字分析法:假設(shè)關(guān)鍵字是以r為基的數(shù),并且哈希表中可能出現(xiàn)的關(guān)鍵字都是事先知道的,則可取關(guān)鍵字的若干數(shù)位組成哈希地址。平方取中法:取關(guān)鍵字平方后的中間幾位為哈希地址。通常在選定哈希函數(shù)時(shí)不一定能知道關(guān)鍵字的全部情況,取其中的哪幾位也不一定合適,而一個(gè)數(shù)平方后的中間幾位數(shù)和數(shù)的每一位都相關(guān),由此使隨機(jī)分布的關(guān)鍵字得到的哈希地址也是隨機(jī)的。取的位數(shù)由表長(zhǎng)決定。折疊法:將關(guān)鍵字分割成位數(shù)相同的幾部分(最后一部分的位數(shù)可以不同),然后取這幾部分的疊加和(舍去進(jìn)位)作為哈希地址。隨機(jī)數(shù)法除留余數(shù)法:取關(guān)鍵字被某個(gè)不大于散列表表長(zhǎng)m的數(shù)p除后所得的余數(shù)為散列地址。即,?。不僅可以對(duì)關(guān)鍵字直接取模,也可在折疊法、平方取中法等運(yùn)算之后取模。對(duì)p的選擇很重要,一般取素?cái)?shù)或m,若p選擇不好,容易產(chǎn)生碰撞。3.處理碰撞的方法 為了知道碰撞產(chǎn)生的相同散列函數(shù)地址所對(duì)應(yīng)的關(guān)鍵字,必須選用另外的散列函數(shù),或者對(duì)碰撞結(jié)果進(jìn)行處理。在算法導(dǎo)論里面介紹了三種方法:開(kāi)放尋址,單獨(dú)鏈表,雙散列。

4.查找效率 數(shù)據(jù)本身分布是否均勻,還有就是散列表的載荷因子。散列表的載荷因子定義為:?= 填入表中的元素個(gè)數(shù) / 散列表的長(zhǎng)度

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在本節(jié)中,我們將探究集成模式的數(shù)組,每個(gè)模式都是為了提供無(wú)縫集成解決方案而定制的。這些模式作為結(jié)構(gòu)化的框架,促進(jìn)了不同系統(tǒng)之間的聯(lián)系和數(shù)據(jù)交換。它們大致分為三類(lèi):

關(guān)鍵字: 數(shù)據(jù)整合 數(shù)據(jù)結(jié)構(gòu)

學(xué)習(xí)C語(yǔ)言是程序員的入門(mén)教育,但是在學(xué)習(xí)過(guò)程中,常常會(huì)遇到一些常見(jiàn)的誤區(qū)。這些誤區(qū)可能會(huì)讓學(xué)習(xí)者的學(xué)習(xí)經(jīng)驗(yàn)不佳,影響到他們掌握該語(yǔ)言的能力。

關(guān)鍵字: C語(yǔ)言 數(shù)據(jù)結(jié)構(gòu)

常用的數(shù)據(jù)結(jié)構(gòu)可根據(jù)數(shù)據(jù)訪問(wèn)的特點(diǎn)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。線性結(jié)構(gòu)包括常見(jiàn)的鏈表、棧、隊(duì)列等,非線性結(jié)構(gòu)包括樹(shù)、圖等。

關(guān)鍵字: 數(shù)據(jù)結(jié)構(gòu) 非線性結(jié)構(gòu)

堆(heap)和棧(stack)是在計(jì)算機(jī)中常用的兩種數(shù)據(jù)結(jié)構(gòu)。它們具有不同的特點(diǎn)和用途,對(duì)于程序員來(lái)說(shuō),了解堆和棧的區(qū)別是非常重要的。

關(guān)鍵字: 內(nèi)存 數(shù)據(jù)結(jié)構(gòu)

南京2022年10月27日 /美通社/ -- 10月18日,由南瑞集團(tuán)主導(dǎo)編制的IEC國(guó)際標(biāo)準(zhǔn)《電動(dòng)汽車(chē)充電漫游服務(wù)信息交互 第2部分:用例》(IEC 63119-2:2022)正式發(fā)布。該標(biāo)準(zhǔn)的發(fā)布是南瑞集團(tuán)在國(guó)際電動(dòng)...

關(guān)鍵字: 電動(dòng)汽車(chē)充電 充電站 數(shù)據(jù)結(jié)構(gòu) 電動(dòng)汽車(chē)電池

大家都聽(tīng)說(shuō)過(guò)紅黑樹(shù),也都知道紅黑樹(shù)很厲害,是計(jì)算機(jī)里面評(píng)價(jià)非常高的數(shù)據(jù)結(jié)構(gòu)。但是每當(dāng)想學(xué)習(xí)紅黑樹(shù)的時(shí)候,卻總是找不到通俗易懂很好理解的學(xué)習(xí)資料。很多書(shū)上上來(lái)就是紅黑樹(shù)的定義,然后就是紅黑樹(shù)的實(shí)現(xiàn),直接就把人給整暈了。光看...

關(guān)鍵字: 計(jì)算機(jī) 數(shù)據(jù)結(jié)構(gòu) 紅黑樹(shù)

(全球TMT2022年7月11日訊)7月7日,由徑碩科技(JINGdigital)主辦、MEC睿達(dá)會(huì)承辦的“萬(wàn)數(shù)有靈·2022中國(guó)數(shù)字營(yíng)銷(xiāo)創(chuàng)新增長(zhǎng)峰會(huì)”在深圳舉行。作為一家營(yíng)銷(xiāo)科技公司,徑碩科技提供的是一流的營(yíng)銷(xiāo)軟件產(chǎn)...

關(guān)鍵字: CE DIGITAL 數(shù)字化 數(shù)據(jù)結(jié)構(gòu)

Redis為什么那么快?除了它是內(nèi)存數(shù)據(jù)庫(kù),使得所有的操作都在內(nèi)存上進(jìn)行之外,還有一個(gè)重要因素,它實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu),使得我們對(duì)數(shù)據(jù)進(jìn)行增刪查改操作時(shí),Redis能高效的處理。因此,這次我們就來(lái)好好聊一下Redis數(shù)據(jù)結(jié)構(gòu),...

關(guān)鍵字: 數(shù)據(jù)結(jié)構(gòu) REDIS 字符串 節(jié)點(diǎn)

哈嘍,大家好,我是瓜哥,致力于分享互聯(lián)網(wǎng)各領(lǐng)域干貨。前幾天,有人問(wèn)瓜哥,學(xué)習(xí)編程語(yǔ)言有什么好的建議沒(méi)?今天簡(jiǎn)單和大家分享幾點(diǎn)學(xué)習(xí)編程的建議,希望可以幫助到大家。1.只要開(kāi)始,就不要怕晚瓜哥經(jīng)??吹竭@些問(wèn)題,大四學(xué)編程還來(lái)...

關(guān)鍵字: 編程 代碼 基礎(chǔ)知識(shí) 數(shù)據(jù)結(jié)構(gòu)

模塊化是指解決一個(gè)復(fù)雜問(wèn)題時(shí)自頂向下逐層把系統(tǒng)劃分成若干模塊的過(guò)程,有多種屬性,分別反映其內(nèi)部特性。

關(guān)鍵字: 模塊化 軟件模塊 數(shù)據(jù)結(jié)構(gòu)
關(guān)閉