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

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

hash表的實(shí)現(xiàn)原理

大?。?/span>0.3 MB 人氣: 2017-09-28 需要積分:1

  軟件開發(fā)中,一個hash表相當(dāng)于把n個key隨機(jī)放入到b個bucket中,以實(shí)現(xiàn)n個數(shù)據(jù)在b個單位空間的存儲。

  我們發(fā)現(xiàn)hash表中存在一些有趣現(xiàn)象:

  hash表中key的分布規(guī)律

  當(dāng)hash表中key和bucket數(shù)量一樣時(n/b=1):

  37% 的bucket是空的

  37% 的bucket里只有1個key

  26% 的bucket里有1個以上的key(hash沖突)

  下圖直觀的展示了當(dāng)n=b=20時,hash表里每個bucket中key的數(shù)量(按照key的數(shù)量對bucket做排序):

  hash表的實(shí)現(xiàn)原理

  往往我們對hash表的第一感覺是:如果將key隨機(jī)放入所有的bucket,bucket中key的數(shù)量較為均勻,每個bucket里key數(shù)量的期望是1。

  而實(shí)際上,bucket里key的分布在n較小時非常不均勻;當(dāng)n增大時,才會逐漸趨于平均。

  key的數(shù)量對3類bucket數(shù)量的影響

  下表表示當(dāng)b不變,n增大時,n/b的值如何影響3類bucket的數(shù)量占比(沖突率即含有多于1個key的bucket占比):

  hash表的實(shí)現(xiàn)原理

  更直觀一點(diǎn),我們用下圖來展示空bucket率和沖突率隨n/b值的變化趨勢:

  hash表的實(shí)現(xiàn)原理

  key數(shù)量對bucket均勻程度的影響

  上面幾組數(shù)字是當(dāng)n/b較小時有意義的參考值,但隨n/b逐漸增大,空bucket與1個key的bucket數(shù)量幾乎為0,絕大多數(shù)bucket含有多個key。

  當(dāng)n/b超過1(1個bucket允許存儲多個key), 我們主要觀察的對象就轉(zhuǎn)變成bucket里key數(shù)量的分布規(guī)律。

  下表表示當(dāng)n/b較大,每個bucket里key的數(shù)量趨于均勻時,不均勻的程度是多少。

  為了描述這種不均勻的程度,我們使用bucket中key數(shù)量的最大值和最小值之間的比例((most-fewest)/most)來表示。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

hash表的實(shí)現(xiàn)原理下載

相關(guān)電子資料下載

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?