国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

散列

2019-11-06 06:38:13
字體:
來源:轉載
供稿:網友

  散列的基本思想就是映射,通過哈希函數將關鍵字信息映射到另外一個值,這個值保存了關鍵字信息的存儲地址,查找的時候可以直接通過關鍵字獲取查找的信息,而不需要進行復雜的搜索運算,查找的期望時間為O(1),保存了關鍵字信息的數據結構叫做散列表。例如數12,23,34,46,59,散列函數為數值的十位數字,則這5個值可以分別映射到1,2,3,4,5保存在散列表中,在查找數據時根據其映射值在表中可以直接得到消息。   兩個不同的關鍵字,由于散列函數值相同,因而被映射到同一表位置上。該現(xiàn)象稱為沖突。因為在散列表中一般映射值是作為表的下標來確定數據保存位置的,因此需要考慮映射值的范圍。      散列中需要考慮的兩個問題:   1、如何構造使結點“分布均勻”的散列函數?   2、一旦發(fā)生沖突,用什么方法來解決?

  通常有兩類方法處理沖突:開放定址(Open Addressing)法和拉鏈(Chaining)法。前者是將所有結點均存放在散列表T[0..m-1]中;后者通常是將互為同義詞的結點鏈成一個單鏈表,而將此鏈表的頭指針放在散列表T[0..m-1]中。      開放地址法   用開放定址法解決沖突的做法是:當沖突發(fā)生時,使用某種探查(亦稱探測)技術在散列表中形成一個探查(測)序列。沿此序列逐個單元地查找,直到找到給定的關鍵字,或者碰到一個開放的地址(即該地址單元為空)為止(若要插入,在探查到開放的地址,則可將待插入的新結點存人該地址單元)。查找時探查到開放的地址則表明表中無待查的關鍵字,即查找失敗。  常用的探查技術有:線性探查法,二次探查法,雙重散列法等。     拉鏈法   拉鏈法解決沖突的做法是:將所有關鍵字為同義詞的結點鏈接在同一個單鏈表中。若選定的散列表長度為m,則可將散列表定義為一個由m個頭指針組成的指針數組T[0..m-1]。凡是散列地址為i的結點,均插入到以T[i]為頭指針的單鏈表中。T中各分量的初值均應為空指針。  這里寫圖片描述   參考:散列    http://student.zjzk.cn/course_ware/data_structure/web/main.htm


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 蓬安县| 宁蒗| 阿荣旗| 遵义市| 合作市| 高淳县| 郧西县| 金乡县| 桐庐县| 梁山县| 新干县| 新和县| 南部县| 琼中| 长泰县| 北川| 丽江市| 成武县| 济源市| 松原市| 凤台县| 苗栗县| 涿鹿县| 鹤壁市| 祁门县| 进贤县| 龙山县| 明光市| 萨嘎县| 宜兰县| 府谷县| 勐海县| 文成县| 华池县| 陵水| 浦东新区| 蓝山县| 正镶白旗| 台北县| 灵武市| 鱼台县|