一、數據結構里的間界疊加
數據結構里的間界疊加是間界疊加:從一端到另一端沿各部分分界來回折疊后,最后一位對齊相加。如:key=2534635870三位一分界。間界疊加:253+364+587+50(即奇數段正序,偶數段反序)。
哈希表定義:也叫散列表。根據設定的哈希函數及處理沖突的方法,將元素存儲在一段有限的連續(xù)空間中。即存儲地址H(key)與關鍵字key的關系構建。
直接定址法:利用線性函數來設置。H(key)=a*key+b;其中a≠0,b為常數。
舉例:統(tǒng)計各年齡段的人口,用直接定址法設定哈希函數。
數字分析法:若關鍵字是x進制數,且可預知可能出現的所有關鍵字值,則可以去關鍵字的若干位構成哈希地址函數。
舉例:
平方取中法:若關鍵字較短,則可以先平方再類似上面,取個別的位數為哈希地址。和上面差不多,就不舉例了。
折疊法:分為移位疊加和間界疊加。將關鍵字值分割成位數相同的幾部分,然后取這幾部分的疊加和(舍棄進位)作為哈希地址。
1)移位疊加:圖書館編號有0-442-20586-4,即0442205864,按此編號構造哈希地址:將該編號分成三部分,將每四位對齊后疊加,進位舍棄,得出來的數據就是哈希地址。
2)間界疊加:先將低四位寫上,再將第二部分倒寫對齊,第三部分又與名列前茅部分一樣,如此間界的對齊,得出的哈希地址就是間界疊加。
除留余數法:設有一組關鍵字,試用除留余數法求設計哈希函數。關鍵字組:(19,14,23,01,68,20,84,27,55,11,10,79,12,39,21)。
可以設置為H(key)=key%13;為什么取13?我們可以假設它取9,得出的余數分別為1 5 5 1 5 2 3 0 1 2 1 7 3 3 3。可以看出1 3 5的余數非常多,當它映射到存儲地址時,會更容易的造成沖突。所以我們在選擇取余數時,一般取質數,讓它的沖突盡可能的少。
延伸閱讀:
二、線性結構是什么
簡單地說,線性結構是一個數據元素的有序(次序)集合。它有四個基本特征:1)集合中必存在少數的一個“名列前茅個元素”。
2)集合中必存在少數的一個“最后的元素”。
3)除最后元素之外,其它數據元素均有少數的“后繼”。
4)除名列前茅元素之外,其它數據元素均有少數的“前驅”。數據結構中線性結構指的是數據元素之間存在著“一對一”的線性關系的數據結構。如(a1,a2,a3,…..,an),a1 為名列前茅個元素,an 為最后一個元素,此集合即為一個線性結構的集合。