這篇文章主要介紹了php哈希沖突怎么解決,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)公司歡迎咨詢(xún):028-86922220,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)公司網(wǎng)頁(yè)制作領(lǐng)域十余年,包括成都混凝土泵車(chē)等多個(gè)行業(yè)擁有豐富的營(yíng)銷(xiāo)推廣經(jīng)驗(yàn),選擇創(chuàng)新互聯(lián)公司,為網(wǎng)站錦上添花。
php是一個(gè)嵌套的縮寫(xiě)名稱(chēng),是英文超級(jí)文本預(yù)處理語(yǔ)言,它的語(yǔ)法混合了C、Java、Perl以及php自創(chuàng)新的語(yǔ)法,主要用來(lái)做網(wǎng)站開(kāi)發(fā),許多小型網(wǎng)站都用php開(kāi)發(fā),因?yàn)閜hp是開(kāi)源的,從而使得php經(jīng)久不衰。
本文操作系統(tǒng):windows7系統(tǒng)、PHP5.6版本、DELL G3電腦。
1.哈希沖突概念
對(duì)應(yīng)不同的關(guān)鍵字可能獲得相同的hash地址,即 key1≠key2,但是f(key1)=f(key2)。這種現(xiàn)象就是沖突,而且這種沖突只能盡可能的減少,不能完全避免。因?yàn)楣:瘮?shù)是從關(guān)鍵字集合和地址集合的映像,通常關(guān)鍵字集合比較大,而地址集合的元素僅為哈希表中的地址值。
2.沖突解決:鏈接法
鏈接法優(yōu)點(diǎn):
(1)拉鏈法處理沖突簡(jiǎn)單,且無(wú)堆積現(xiàn)象,即非同義詞絕不會(huì)發(fā)生沖突,因此平均查找長(zhǎng)度較短;
(2)由于拉鏈法中各鏈表上的節(jié)點(diǎn)是動(dòng)態(tài)申請(qǐng)的,故它更適合造表前無(wú)法確定表長(zhǎng)的情況;
鏈接法缺點(diǎn):
指針需要額外的空間,故當(dāng)結(jié)點(diǎn)規(guī)模較小時(shí),開(kāi)放定址法較為節(jié)省空間,而若將節(jié)省的指針空間擴(kuò)大散列表的規(guī)模,可是裝載因子變小,這又減少了開(kāi)放定址法中的沖突,從而提高平均查找速度。
3.解決實(shí)例
(1)使用Hash函數(shù)計(jì)算關(guān)鍵字的Hash值,通過(guò)Hash值定位到Hash表的指定位置。
(2) 如果此位置已經(jīng)被其他節(jié)點(diǎn)占用,把新節(jié)點(diǎn)的$nextNode指向此節(jié)點(diǎn),否則把新節(jié)點(diǎn)$nextNode設(shè)置為null。
(3)把新節(jié)點(diǎn)保存到Hash表的當(dāng)前位置。
經(jīng)過(guò)這三個(gè)步驟,相同的Hash值得節(jié)點(diǎn)會(huì)被連接到同一個(gè)鏈表。
查找算法相應(yīng)的修改為如下格式:
Public functionfind($key){
$index = $this ->hashfunc($key);
$current =$this->buckets[$index];
while(isset($current)){//遍歷當(dāng)前鏈表
if($current->key== $key){ //比較當(dāng)前節(jié)點(diǎn)的關(guān)鍵字
return$current -> value;//查找成功
}
$current =$current ->nextNode; //比較下一個(gè)節(jié)點(diǎn)
}
Return null; //查找失敗
}感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“php哈希沖突怎么解決”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
網(wǎng)站名稱(chēng):php哈希沖突怎么解決
網(wǎng)頁(yè)鏈接:http://www.chinadenli.net/article44/igpshe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、電子商務(wù)、響應(yīng)式網(wǎng)站、企業(yè)建站、外貿(mào)網(wǎng)站建設(shè)、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)