1、什么是散列表
? 1)長度預(yù)先設(shè)定
? 2)元素根據(jù)元素對應(yīng)的鍵進(jìn)行保存
? 3)通過散列函數(shù)將鍵映射為一個(gè)數(shù)字,理想情況下鍵值唯一
2、散列表的優(yōu)點(diǎn):實(shí)現(xiàn)快速的插入或取用
3、散列表的缺點(diǎn):查找操作效率低下
4、什么碰撞:兩個(gè)鍵通過散列函數(shù)映射成同一個(gè)值
5、有哪些散列函數(shù),及其原理
? ? 1)將值的每一字符轉(zhuǎn)化為ASCII值,并相加,再對數(shù)組長度求余(數(shù)組長度最好為質(zhì)數(shù))
? ? 2)將值的每一個(gè)字符轉(zhuǎn)化為ASCII碼值乘以一個(gè)質(zhì)數(shù)再求和,最后對數(shù)組長度取余
6、有哪些處理碰撞的方法,及其原理
? ? 1)開鏈法:將值保存在一個(gè)數(shù)組里,當(dāng)遇到鍵碰撞時(shí),將值插入數(shù)組
? ? 2)線性探測法:將值和鍵保存至兩個(gè)table,碰撞時(shí)將鍵和值保存在pos+1的位置
? ? ?*當(dāng)數(shù)組長度是存儲數(shù)據(jù)1.5倍的時(shí)候用開鏈法,2倍及以上的時(shí)候用線性探測法