散列表hashtable

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í)候用線性探測法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 數(shù)據(jù)結(jié)構(gòu)與算法--散列表 之前學(xué)習(xí)了基于鏈表的順序查找、基于有序數(shù)組的二分查找、二叉查找樹、紅黑樹,這些算法在查找...
    sunhaiyu閱讀 722評論 3 5
  • 本文主要介紹散列表(Hash Table)這一常見數(shù)據(jù)結(jié)構(gòu)的原理與實(shí)現(xiàn)。由于個(gè)人水平有限,文章中難免存在不準(zhǔn)確或是...
    absfree閱讀 16,629評論 2 35
  • HashMap 是 Java 面試必考的知識點(diǎn),面試官從這個(gè)小知識點(diǎn)就可以了解我們對 Java 基礎(chǔ)的掌握程度。網(wǎng)...
    野狗子嗷嗷嗷閱讀 6,813評論 9 107
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,683評論 0 4
  • 什么是哈希表? 哈希表(Hash table,也叫散列表),是根據(jù)關(guān)鍵碼值(Key value)而直接進(jìn)行訪問的數(shù)...
    郝程序猿閱讀 2,284評論 1 7

友情鏈接更多精彩內(nèi)容