<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          面試官:Hash 碰撞是什么?如何解決?被問懵了……

          共 1085字,需瀏覽 3分鐘

           ·

          2022-10-19 19:07

          ???? 關(guān)注后回復(fù)?“進(jìn)群”?,拉你進(jìn)程序員交流群 ????


          Hash如何存數(shù)據(jù)

          hash表的本質(zhì)其實就是數(shù)組,hash表中通常存放的是鍵值對Entry。

          如下圖:

          857fb246d360ddbb5a701c3a287c18e9.webp

          這里的學(xué)號是個key,哈希表就是根據(jù)key值來通過哈希函數(shù)計算得到一個值,這個值就是下標(biāo)值,用來確定這個Entry要存放在哈希表中哪個位置。

          Hash碰撞

          hash碰撞指的是,兩個不同的值(比如張三、李四的學(xué)號)經(jīng)過hash計算后,得到的hash值相同,后來的李四要放到原來的張三的位置,但是數(shù)組的位置已經(jīng)被張三占了,導(dǎo)致沖突。

          解決方法

          hash碰撞的解決方式是開放尋址法和拉鏈法。

          開放尋址法指的是,當(dāng)前數(shù)組位置1被占用了,就放到下一個位置2上去,如果2也被占用了,就繼續(xù)往下找,直到找到空位置。

          3310c3dd4e77f20b2f41dd90a14e50ad.webp

          拉鏈法采用的是鏈表的方式,這個時候位置1就不單單存放的是Entry了,此時的Entry還要額外保存一個next指針,指向數(shù)組外的另一個位置,將李四安排在這里,張三那個Entry中的next指針就指向李四的這個位置,也就是保存的這個位置的內(nèi)存地址。

          如果還有沖突,就把又沖突的那個Entry放到一個新位置上,然后李四的Entry指向它,這樣就形成一個鏈表。

          1de2502a189b469ac8d07f502d682d2d.webp

          總結(jié)起來:開放尋址法和拉鏈法都是想辦法找到下一個空位置來存發(fā)生沖突的值。

          來源:blog.csdn.net/zsyoung/article/details/114505480
              


          -End-

          最近有一些小伙伴,讓我?guī)兔φ乙恍?面試題?資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

          b33934aebe9df9ad2c907543decf5918.webp

          點擊??卡片,關(guān)注后回復(fù)【面試題】即可獲取

          在看點這里 0ebff6f3bb8617694d77ea89fa42470f.webp好文分享給更多人↓↓

          瀏覽 43
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美成人三级视频 | 直接免费播放的黄色录像 | 日韩v欧美v日本v亚洲v国产v | 国产三级片网站 | 无码一区=区|