国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本
首頁
|
新聞
|
娛樂
|
游戲
|
科普
|
文學(xué)
|
編程
|
系統(tǒng)
|
數(shù)據(jù)庫
|
建站
|
學(xué)院
|
產(chǎn)品
|
網(wǎng)管
|
維修
|
辦公
|
熱點
首頁
>
學(xué)院
>
邏輯算法
> 正文
算法系列15天速成 第五天 五大經(jīng)典查找【中】
2024-09-08 23:18:39
字體:
大
中
小
來源:
轉(zhuǎn)載
供稿:網(wǎng)友
哈希查找:
對的,他就是哈希查找,說到哈希,大家肯定要提到哈希函數(shù),呵呵,這東西已經(jīng)在我們腦子里面形成
固有思維了。大家一定要知道“哈希“中的對應(yīng)關(guān)系。
比如說: ”5“是一個要保存的數(shù),然后我丟給哈希函數(shù),哈希函數(shù)給我返回一個”2",那么此時的”5“
和“2”就建立一種對應(yīng)關(guān)系,這種關(guān)系就是所謂的“哈希關(guān)系”,在實際應(yīng)用中也就形成了”2“是key,”5“是value。
那么有的朋友就會問如何做哈希,首先做哈希必須要遵守兩點原則:
①: key盡可能的分散,也就是我丟一個“6”和“5”給你,你都返回一個“2”,那么這樣的哈希函數(shù)不盡完美。
②: 哈希函數(shù)盡可能的簡單,也就是說丟一個“6”給你,你哈希函數(shù)要搞1小時才能給我,這樣也是不好的。
其實常用的做哈希的手法有“五種”:
第一種:”直接定址法“。
很容易理解,key=Value+C; 這個“C"是常量。Value+C其實就是一個簡單的哈希函數(shù)。
第二種:“除法取余法”。
很容易理解, key=value%C;解釋同上。
第三種:“數(shù)字分析法”。
這種蠻有意思,比如有一組value1=112233,value2=112633,value3=119033,
針對這樣的數(shù)我們分析數(shù)中間兩個數(shù)比較波動,其他數(shù)不變。那么我們?nèi)ey的值就可以是
key1=22,key2=26,key3=90。
第四種:“平方取中法”。此處忽略,見名識意。
第五種:“折疊法”。
這種蠻有意思,比如value=135790,要求key是2位數(shù)的散列值。那么我們將value變?yōu)?3+57+90=160,
然后去掉高位“1”,此時key=60,哈哈,這就是他們的哈希關(guān)系,這樣做的目的就是key與每一位value都相
關(guān),來做到“散列地址”盡可能分散的目地。
正所謂常在河邊走,哪有不濕鞋。哈希也一樣,你哈希函數(shù)設(shè)計的再好,搞不好哪一次就撞樓了,那么拋給我們的問題
就是如果來解決“散列地址“的沖突。
其實解決沖突常用的手法也就2種:
第一種: “開放地址法“。
所謂”開放地址“,其實就是數(shù)組中未使用的地址。也就是說,在發(fā)生沖突的地方,后到的那個元素(可采用兩種方式
:①線性探測,②函數(shù)探測)向數(shù)組后尋找"開放地址“然后把自己插進入。
第二種:”鏈接法“。
這個大家暫時不懂也沒關(guān)系,我就先介紹一下原理,就是在每個元素上放一個”指針域“,在發(fā)生沖突的地方,后到的那
個元素將自己的數(shù)據(jù)域拋給沖突中的元素,此時沖突的地方就形成了一個鏈表。
上面 主站蜘蛛池模板:
保亭
|
津南区
|
南乐县
|
成安县
|
呼伦贝尔市
|
海城市
|
喜德县
|
南宫市
|
蓬溪县
|
嵊州市
|
达州市
|
文化
|
汝阳县
|
济宁市
|
从化市
|
凤庆县
|
什邡市
|
县级市
|
金堂县
|
威海市
|
广灵县
|
永川市
|
盘锦市
|
平阴县
|
阿勒泰市
|
大足县
|
古浪县
|
安陆市
|
清水县
|
满洲里市
|
阿城市
|
鹰潭市
|
瑞丽市
|
霍城县
|
海原县
|
巴南区
|
泸西县
|
富平县
|
涟水县
|
祁东县
|
青铜峡市
|