雜湊表:雜湊表是一種資料結構,它提供了快速的插入操作和查詢操作,其基於陣列來實現。
雜湊化方式
1)直接將關鍵字作為索引。
弊端:關鍵字資料型別只能是整形。
2)將單詞轉換成索引。
①將字母轉換成ascii碼,然後進行相加。
弊端:會出現不同的字串轉換ascii碼的值和相同。
②冪的連乘。
弊端:通過冪的連乘得到的key一般非常大。
③壓縮可選值。
弊端:不能保證每個單詞都對映到陣列的空白單元。
解決方式:
開放位址法
鏈位址法
直接將關鍵字作為索引:
建立乙個物件:
public class info
public int getkey()
public void setkey(int key)
public string getname()
public void setname(string name)
}
建立乙個雜湊表,使用儲存物件中的關鍵字作為陣列的索引
public class hashtable
public hashtable(int maxsize)
/*** 插入資料
* * @param info
*/public void insert(info info)
/*** 查詢操作
* * @param key
* @return
*/public info find(int key)
}
將單詞轉換成索引
①將字母轉換成ascii碼,然後進行相加。
建立儲存物件類
public class info
public string getkey()
public void setkey(string key)
public string getname()
public void setname(string name)
}
建立雜湊類
public class hashtable
public hashtable(int maxsize)
/*** 插入資料
* * @param info
*/public void insert(info info)
/*** 查詢操作
* * @param key
* @return
*/public info find(string key)
/*** 將字串字母轉換為ascii碼,然後相加
* * @param key
* @return
*/public int hashcode(string key)
return hashvalue;
}}
②冪的連乘。
儲存物件類同上。
建立雜湊錶類。
public class hashtable
public hashtable(int maxsize)
/*** 插入資料
* * @param info
*/public void insert(info info)
/*** 查詢操作
* * @param key
* @return
*/public info find(string key)
/*** 將字串字母轉換為ascii碼,然後跟乙個指定的數字的冪相乘
* * @param key
* @return
*/public int hashcode(string key)
return hashvalue;
}}
③壓縮可選值。
儲存物件類同上。
建立雜湊錶類。
public class hashtable
public hashtable(int maxsize)
/*** 插入資料
* * @param info
*/public void insert(info info)
/*** 查詢操作
* * @param key
* @return
*/public info find(string key)
/*** 將字串字母轉換為ascii碼,然後跟乙個指定的數字的冪相乘,得到的結果進行取模
* * @param key
* @return
*/public int hashcode(string key)
return hashvalue.mod(new biginteger(string.valueof(arr.length)))
.intvalue();
}}
資料結構 雜湊表(雜湊表)hash table
hash table 在計算機中,雜湊表 是 一種實現了關聯陣列 抽象資料型別的資料結構,這種資料結構可以對映 鍵 key 和 值 value 補充 關聯陣列 在電腦科學中,乙個關聯陣列 associative array 對映 map 符號表 symbol table 或者是字典 dictiona...
資料結構 雜湊表 雜湊表 原理
記錄的儲存位置 f 關鍵字 這裡的對應關係f稱為雜湊函式,又稱為雜湊 hash函式 採用雜湊技術將記錄儲存在一塊連續的儲存空間中,這塊連續儲存空間稱為雜湊表或雜湊表 hash table 雜湊表hashtable key,value 就是把key通過乙個固定的演算法函式既所謂的雜湊函式轉換成乙個整型...
資料結構 雜湊表查詢(雜湊表)
對於查詢,有順序表直接遍歷,有折半查詢直到查詢成功。但是這都需要不斷的比較,每一次查詢都需要重新遍歷,所以當資料龐大時是非常耗時的。雜湊表是一種可以避免多次比較,直接通過關鍵字就可以得到要查詢的記錄記憶體儲存位置。例如就像是乙個函式,每乙個自變數都對應著乙個函式值,即 這屬於雜湊技術,不需要比較就可...