本文介紹了在哈希表中創建字符串的哈希值的時間復雜性的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
通常說,在哈希表中插入和查找字符串是O(1)。但是字符串的散列鍵是如何生成的呢?為什么不考慮O(L),字符串的長度?
我很清楚為什么對于整數,它是O(1),而對于字符串,它不是。
我確實理解為什么在一般情況下,插入哈希表是O(1),但我對插入哈希表之前的步驟感到困惑:生成哈希值。
在Java中生成字符串的散列鍵的方式與在C++中生成unordered_map的方式有什么不同嗎?
謝謝。
推薦答案
在哈希表中插入EQUTE是O(1),因為它在表中的元素數中是常量。
這個上下文中的”O(1)”并沒有聲明計算散列的速度有多快。如果這方面的努力在某種程度上有所增長,那就是它的方式。然而,我發現一個像樣的(即”適合此應用程序”)散列函數的復雜性不太可能在散列對象的”大小”(即我們的字符串示例中的長度)中比線性的要差。
這篇關于在哈希表中創建字符串的哈希值的時間復雜性的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,