算法筆記之哈希表、映射和集合(Python)

哈希表、映射和集合

1.哈希表概念(Hash table)
(1)哈希表(Hash table),也稱爲散列表,是根據關鍵碼值(key value)而直接進行訪問的數據結構。
(2)它通過把關鍵碼值映射到表中的一個位置來訪問記錄,以加快查找的速度。
(3)這個映射函數叫做散列函數(Hash Function),存放記錄的數據叫做哈希表(或散列表)。

2.實踐應用
(1)電話號碼簿
(2)用戶信息表
(3)緩存(LRU Cache)
(4)鍵值對存儲(Redis)

3.哈希函數
(1)哈希函數示意圖
在這裏插入圖片描述
(2)出現衝突的情況
在這裏插入圖片描述注:拉鍊式解決衝突法,如果哈希函數設計的好,查詢的時間複雜度就是O(1)。

(3)完整結構示意圖
在這裏插入圖片描述
4.哈希表時間複雜度分析
哈希表的時間複雜度,平均來說,如果哈希函數設計的好,發生衝突的情況非常少,操作的時間複雜度一般爲O(1),但是,如果哈希函數設計的不好,出現很多衝突的情況,那麼最差的情況下,時間複雜度則退化爲O(n)。
在這裏插入圖片描述
5.Python實現
(1)列表——list

#list
List1 = [1,2,3,4]

(2)字典——dict

#dict
map_x = {'張三':80,'李四':92,'王二':79}

(3)集合——set

#set
set_x = set(['jack','anna','lucy','tom','jack','tom']) 
#此時,set_x = ['jack','anna','lucy','tom']
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章