一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HASH哈希游戲開(kāi)發(fā)(技術(shù)方案):開(kāi)放尋址法詳解

開(kāi)發(fā)丨KFZ433 ? 來(lái)源:開(kāi)發(fā)丨KFZ433 ? 作者:開(kāi)發(fā)丨KFZ433 ? 2022-06-29 13:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

什么是哈希開(kāi)放尋址法?

開(kāi)放尋址法,就是當(dāng)發(fā)生哈希沖突時(shí),重新找到空閑的位置,然后插入元素。尋址方式有多種,常用的有線性尋址、二次方尋址、雙重哈希尋址:

?線性尋址?,當(dāng)需要插入元素的位置被占用時(shí),順序向后尋址,如果到數(shù)組最后也沒(méi)找到一個(gè)空閑位置,則從數(shù)組開(kāi)頭尋址,直到找到一個(gè)空閑位置插入數(shù)據(jù)。線性尋址的每次尋址步長(zhǎng)是1,尋址公式??hash(key)+n??(n是尋址的次數(shù))。 ?二次方尋址?,就是線性尋址的總步長(zhǎng)的二次方,即??hash(key)+n^2??。 ?雙重哈希尋址?,顧名思義就是多次哈希直到找到一個(gè)不沖突的哈希值。

pYYBAGK7566APp7lAABex73Fz_M407.png

采用開(kāi)放尋址法解決哈希沖突,又該如何查找元素和刪除元素呢?

查找元素的過(guò)程和插入元素類(lèi)似,用相同的尋址方式,尋址的同時(shí)比對(duì)key或者value是否相等,相等則認(rèn)為元素存在,不相等則繼續(xù)尋址,?如果探測(cè)到空閑位置依然沒(méi)有找到則認(rèn)為該元素不存在?。

刪除有些特別,?不能單純的把要?jiǎng)h除的元素設(shè)置為空?,因?yàn)樵诓檎以氐倪^(guò)程中探測(cè)到的空閑位置是刪除元素的位置,就會(huì)使得查找元素的尋址算法失效,本來(lái)存在的元素誤判定為不存在。該如何解決這個(gè)問(wèn)題呢?

?只需要?jiǎng)h除元素不是物理刪除而是邏輯刪除?。給刪除的元素做上delete標(biāo)記,當(dāng)查詢?cè)貙ぶ窌r(shí)遇到delete標(biāo)記的位置時(shí)不會(huì)停下來(lái)而是?繼續(xù)向后探測(cè)?,但是在插入元素尋址遇到delete標(biāo)記的位置就會(huì)把應(yīng)該刪除的元素替換掉。

三種尋址方式都有著明顯的不足:

線性尋址,尋址的性能雖然元素個(gè)數(shù)的增多逐步下降,最壞時(shí)間復(fù)雜度是O(n)。 二次方尋址,尋址的次數(shù)比線性尋址較低了,但是會(huì)因?yàn)椴介L(zhǎng)是二次方,所以需要較長(zhǎng)的數(shù)組長(zhǎng)度,內(nèi)存利用率可能較低。 雙重哈希尋址,多次哈??赡軙?huì)浪費(fèi)時(shí)間,需要優(yōu)質(zhì)的哈希函數(shù)做支撐。

而整個(gè)開(kāi)放尋址法的不足也很明顯:

插入、查找、刪除都需要尋址。 數(shù)組中元素越多,空閑位置越少,哈希沖突越劇烈。所以裝載因子不能太大,要及時(shí)擴(kuò)容減小沖突,但是數(shù)組內(nèi)存利用率較低。

看似開(kāi)放尋址法有挺多問(wèn)題,但是也有一些優(yōu)點(diǎn):

數(shù)據(jù)都存儲(chǔ)在數(shù)組中,可以有效地利用 CPU 緩存加快查詢速度。 而且,這種方法實(shí)現(xiàn)的哈希表,序列化也簡(jiǎn)單,不像鏈表還要考慮指針。

總結(jié)而得,當(dāng)數(shù)據(jù)量比較小、裝載因子小的時(shí)候,適合采用開(kāi)放尋址法。這也是 Java 中??ThreadLocal???內(nèi)部類(lèi)??ThreadLocalMap??使用開(kāi)放尋址法解決散列沖突的原因。

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64908
  • 哈希算法
    +關(guān)注

    關(guān)注

    1

    文章

    56

    瀏覽量

    10966
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Redis集群部署配置詳解

    Redis集群是一種分布式Redis解決方案,通過(guò)數(shù)據(jù)分片和主從復(fù)制實(shí)現(xiàn)高可用性和橫向擴(kuò)展。集群將整個(gè)數(shù)據(jù)集分割成16384個(gè)哈希槽(hash slots),每個(gè)節(jié)點(diǎn)負(fù)責(zé)一部分槽位。
    的頭像 發(fā)表于 07-17 11:04 ?128次閱讀

    技術(shù)干貨 | 精準(zhǔn)測(cè)試,高效分析——ADC直方圖測(cè)試技術(shù)詳解

    本章詳解ADC線性度測(cè)試的兩種核心方法:線性斜坡和正弦波,涵蓋DNL/INL計(jì)算、測(cè)試參數(shù)優(yōu)化及德思特高精度測(cè)試方案,助您快速掌握ADC性能評(píng)估關(guān)鍵
    的頭像 發(fā)表于 07-07 10:40 ?340次閱讀
    <b class='flag-5'>技術(shù)</b>干貨 | 精準(zhǔn)測(cè)試,高效分析——ADC直方圖測(cè)試<b class='flag-5'>技術(shù)</b><b class='flag-5'>詳解</b>

    鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(游戲

    十年前藏的現(xiàn)金一樣驚喜?。┻@些藏在文檔深處的\"武功秘籍\",能幫我們輕松實(shí)現(xiàn)分布式游戲、跨端協(xié)同這些聽(tīng)起來(lái)很酷的功能??焐宪?chē),帶你解鎖鴻蒙開(kāi)發(fā)的正確姿勢(shì)! 一、分布式游戲手柄
    發(fā)表于 06-03 18:22

    全鏈路賦能游戲鴻蒙化適配,鴻蒙游戲開(kāi)發(fā)者服務(wù)煥新升級(jí)

    實(shí)踐,通過(guò)專(zhuān)家授課、案例解析與現(xiàn)場(chǎng)互動(dòng),為開(kāi)發(fā)者提供從技術(shù)適配到創(chuàng)新玩法落地的一站式解決方案。 游戲鴻蒙化流程詳解:7步輕松實(shí)現(xiàn)從適配到上架
    的頭像 發(fā)表于 03-17 09:25 ?440次閱讀
    全鏈路賦能<b class='flag-5'>游戲</b>鴻蒙化適配,鴻蒙<b class='flag-5'>游戲</b><b class='flag-5'>開(kāi)發(fā)</b>者服務(wù)煥新升級(jí)

    OpenHarmony在應(yīng)用與游戲開(kāi)發(fā)領(lǐng)域的前沿成果

    展示了OpenHarmony在應(yīng)用與游戲開(kāi)發(fā)領(lǐng)域的前沿成果。這些凝聚智慧與協(xié)作的參賽作品,不僅在技術(shù)層面實(shí)現(xiàn)了多項(xiàng)突破,更在商業(yè)化應(yīng)用層面驗(yàn)證了開(kāi)源生態(tài)的無(wú)限潛力。賽事不僅彰顯了開(kāi)發(fā)
    的頭像 發(fā)表于 03-03 15:04 ?601次閱讀

    半導(dǎo)體推出創(chuàng)新NFC技術(shù)應(yīng)用開(kāi)發(fā)套件

    半導(dǎo)體新推出一款創(chuàng)新的非接觸式近場(chǎng)通信(NFC)技術(shù)應(yīng)用開(kāi)發(fā)套件。這款開(kāi)發(fā)套件包含意半導(dǎo)體新推出的ST25R200讀寫(xiě)芯片,讓NFC
    的頭像 發(fā)表于 02-20 17:16 ?876次閱讀

    MediaTek與知名游戲引擎開(kāi)發(fā)商Cocos達(dá)成深度合作

    為帶給開(kāi)發(fā)者和用戶智能互動(dòng)新體驗(yàn), MediaTek 與知名游戲引擎開(kāi)發(fā)商 Cocos 達(dá)成深度合作,將 MediaTek 端側(cè)生成式 AI 領(lǐng)域的前沿技術(shù),與 Cocos 在
    的頭像 發(fā)表于 01-10 13:48 ?423次閱讀

    【RA-Eco-RA4E2-64PIN-V1.0開(kāi)發(fā)板試用】RA4E2使用之SHA256加密解密

    和解密算法來(lái)進(jìn)行解釋和說(shuō)明數(shù)據(jù)加密和解密操作的。 SHA-256是一種哈希函數(shù),屬于SHA-2(Secure Hash Algorithm 2)家族的一部分。它是由美國(guó)國(guó)家安全局(NSA)設(shè)計(jì),并由
    發(fā)表于 12-23 18:18

    DFRobot參加2024開(kāi)放原子開(kāi)發(fā)者大會(huì)及開(kāi)放原子開(kāi)放硬件許可證發(fā)布儀式

    12月20日至21日,2024開(kāi)放原子開(kāi)發(fā)者大會(huì)暨首屆開(kāi)源技術(shù)學(xué)術(shù)大會(huì)在湖北省武漢市東湖新技術(shù)開(kāi)發(fā)區(qū)的光谷希爾頓酒店隆重舉行。此次大會(huì)以“一切為了開(kāi)
    的頭像 發(fā)表于 12-23 16:21 ?704次閱讀
    DFRobot參加2024<b class='flag-5'>開(kāi)放</b>原子<b class='flag-5'>開(kāi)發(fā)</b>者大會(huì)及<b class='flag-5'>開(kāi)放</b>原子<b class='flag-5'>開(kāi)放</b>硬件許可證發(fā)布儀式

    ChatGPT 在游戲開(kāi)發(fā)中的創(chuàng)新應(yīng)用

    游戲開(kāi)發(fā)領(lǐng)域,人工智能技術(shù)的應(yīng)用正變得越來(lái)越廣泛。ChatGPT,作為一種先進(jìn)的自然語(yǔ)言處理(NLP)模型,為游戲開(kāi)發(fā)帶來(lái)了許多創(chuàng)新的應(yīng)用
    的頭像 發(fā)表于 10-25 18:05 ?1189次閱讀

    半導(dǎo)體與高通合作開(kāi)發(fā)邊緣AI物聯(lián)網(wǎng)解決方案

    半導(dǎo)體(簡(jiǎn)稱ST)與高通公司旗下子公司高通技術(shù)國(guó)際有限公司(簡(jiǎn)稱QTI)宣布,雙方達(dá)成一項(xiàng)新的戰(zhàn)略協(xié)議,合作開(kāi)發(fā)基于邊緣AI的下一代工業(yè)和消費(fèi)物聯(lián)網(wǎng)解決方案。雙方將充分發(fā)揮互補(bǔ)優(yōu)勢(shì)
    的頭像 發(fā)表于 10-12 11:25 ?990次閱讀

    什么是寄存器移位尋址

    寄存器移位尋址是一種特定的尋址方式,主要出現(xiàn)在某些處理器架構(gòu)中,如ARM指令集。這種尋址方式在處理數(shù)據(jù)移動(dòng)和操作時(shí)提供了極大的靈活性和效率。下面將從定義、工作原理、特點(diǎn)、應(yīng)用場(chǎng)景以及與其他尋址
    的頭像 發(fā)表于 10-05 17:38 ?1079次閱讀

    寄存器間接尋址和寄存器尋址的區(qū)別

    寄存器間接尋址和寄存器尋址是計(jì)算機(jī)體系結(jié)構(gòu)中兩種重要的尋址方式,它們?cè)谥噶顖?zhí)行過(guò)程中起著關(guān)鍵作用。下面將從定義、原理、特點(diǎn)、應(yīng)用場(chǎng)景以及區(qū)別等方面對(duì)這兩種尋址方式進(jìn)行詳細(xì)闡述。
    的頭像 發(fā)表于 10-05 17:13 ?3683次閱讀

    PRU開(kāi)發(fā)詳解

    電子發(fā)燒友網(wǎng)站提供《PRU開(kāi)發(fā)詳解.pdf》資料免費(fèi)下載
    發(fā)表于 09-05 11:27 ?0次下載
    PRU<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>詳解</b>

    DDR4尋址原理詳解

    )的尋址原理是計(jì)算機(jī)內(nèi)存系統(tǒng)中至關(guān)重要的一個(gè)環(huán)節(jié),它決定了數(shù)據(jù)如何在內(nèi)存中被有效地存儲(chǔ)和訪問(wèn)。DDR4的尋址原理復(fù)雜而高效,以下將詳細(xì)闡述其關(guān)鍵要素和工作流程。
    的頭像 發(fā)表于 09-04 12:38 ?2187次閱讀