哈希表 Hash Table
哈希表,也叫散列表
,是根據關鍵碼值(key-value)而直接進行訪問的數據結構。- 通過將關鍵碼值映射到表中的一個位置來訪問記錄,以加快查找的速度。
- 這個映射函數叫做散列函數(Hash Function),存放記錄的數組叫做哈希表(或者叫散列)
哈希函數如下圖:
哈希衝突:不同的要存儲的數據經過哈希函數返回相同的值,稱爲哈希衝突
哈希衝突如下圖:
工程實踐:
- 電話號碼簿
- 用戶信息表
- 緩存 LRU Cache
- 鍵值對存儲 Redis
一般認爲 HashTable 添加/刪除元素的時間複雜度爲 O(1),特殊情況是哈希表開的比較小,出現了哈希衝突,這時候可以通過把相同的值拉一個鏈表解決。
HashTable 具體到應用層面:
1.字典dict
:key-value對,key不重複,value 可以重複
2.集合set
:不重複元素的集合