為什么哈希表的時間復雜度是常數階O(1)


在哈希表中進行添加,刪除,查找等操作,性能十分之高,不考慮哈希沖突的情況下,僅需一次定位即可完成,時間復雜度為O(1),哈希表是如何實現達到驚艷的常數階O(1)的呢?

我們知道,數據結構的物理存儲結構只有兩種:順序存儲結構和鏈式存儲結構(像棧,隊列,樹,圖等是從邏輯結構去抽象的,映射到內存中,也這兩種物理組織形式),在數組中根據下標查找某個元素,一次定位就可以達到,哈希表利用了這種特性,哈希表的主干就是數組。

比如我們要新增或查找某個元素,我們通過把當前元素的關鍵字 通過某個函數映射到數組中的某個位置,通過數組下標一次定位就可完成操作。

存儲位置 = f(關鍵字)

其中,這個函數f一般稱為哈希函數,這個函數的設計好壞會直接影響到哈希表的優劣。

查找操作同理,先通過哈希函數計算出實際存儲地址,然后從數組中對應地址取出即可。

所以,哈希表的時間復雜度就是常數階O(1)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM