<em id="hanht"></em>

    <dd id="hanht"></dd>

    <em id="hanht"><acronym id="hanht"></acronym></em>
    
    <button id="hanht"></button>
    <rp id="hanht"><object id="hanht"><blockquote id="hanht"></blockquote></object></rp><em id="hanht"></em>

    首頁 > 學院 > 邏輯算法 > 正文

    算法系列15天速成 第五天 五大經典查找【中】

    2020-10-08 16:14:38
    字體:
    來源:轉載
    供稿:網友
    哈希查找:

        對的,他就是哈希查找,說到哈希,大家肯定要提到哈希函數,呵呵,這東西已經在我們腦子里面形成
    固有思維了。大家一定要知道“哈?!爸械膶P系。
         比如說: ”5“是一個要保存的數,然后我丟給哈希函數,哈希函數給我返回一個”2",那么此時的”5“
    和“2”就建立一種對應關系,這種關系就是所謂的“哈希關系”,在實際應用中也就形成了”2“是key,”5“是value。
        那么有的朋友就會問如何做哈希,首先做哈希必須要遵守兩點原則:
              ①:  key盡可能的分散,也就是我丟一個“6”和“5”給你,你都返回一個“2”,那么這樣的哈希函數不盡完美。
              ②: 哈希函數盡可能的簡單,也就是說丟一個“6”給你,你哈希函數要搞1小時才能給我,這樣也是不好的。

    其實常用的做哈希的手法有“五種”:
    第一種:”直接定址法“。
                      很容易理解,key=Value+C; 這個“C"是常量。Value+C其實就是一個簡單的哈希函數。
    第二種:“除法取余法”。
                      很容易理解, key=value%C;解釋同上。
    第三種:“數字分析法”。
                      這種蠻有意思,比如有一組value1=112233,value2=112633,value3=119033,
                      針對這樣的數我們分析數中間兩個數比較波動,其他數不變。那么我們取key的值就可以是
                      key1=22,key2=26,key3=90。
    第四種:“平方取中法”。此處忽略,見名識意。
    第五種:“折疊法”。
                     這種蠻有意思,比如value=135790,要求key是2位數的散列值。那么我們將value變為13+57+90=160,
                     然后去掉高位“1”,此時key=60,哈哈,這就是他們的哈希關系,這樣做的目的就是key與每一位value都相
                     關,來做到“散列地址”盡可能分散的目地。

    正所謂常在河邊走,哪有不濕鞋。哈希也一樣,你哈希函數設計的再好,搞不好哪一次就撞樓了,那么拋給我們的問題
    就是如果來解決“散列地址“的沖突。

    其實解決沖突常用的手法也就2種:

    第一種: “開放地址法“。
                     所謂”開放地址“,其實就是數組中未使用的地址。也就是說,在發生沖突的地方,后到的那個元素(可采用兩種方式
                     :①線性探測,②函數探測)向數組后尋找"開放地址“然后把自己插進入。

    第二種:”鏈接法“。
                    這個大家暫時不懂也沒關系,我就先介紹一下原理,就是在每個元素上放一個”指針域“,在發生沖突的地方,后到的那
                   個元素將自己的數據域拋給沖突中的元素,此時沖突的地方就形成了一個鏈表。

    上面一级特黄大片欧美久久久久_一本一道久久综合狠狠老_JLZZ日本人年轻护士_欧美男男作爱VIDEOS可播放
      <em id="hanht"></em>

      <dd id="hanht"></dd>

      <em id="hanht"><acronym id="hanht"></acronym></em>
      
      <button id="hanht"></button>
      <rp id="hanht"><object id="hanht"><blockquote id="hanht"></blockquote></object></rp><em id="hanht"></em>