2017-02-27 198 views
-3

什麼是find方法在unordered_set<int>的時間複雜度的複雜性?時間unordered_set <int> find方法

也有可能改變散列函數嗎?

+5

從你的問題的鏈接,你可以發現,複雜性有「不變」和「容器大小呈線性關係」的最壞情況下的平均情況。還有哪些其他信息資料正在尋找?另外,你要麼改變你的'unordered_set'的'Hash'模板參數,或者通過專門的'STD改變散列函數::哈希'模板你 – KABoissonneault

+0

類型看[這裏](https://stackoverflow.com/questions/17016175/c-unordered-map-using-a-custom-class-type-as-the-key)用於@jogojapan回答中的散列函數示例。 – HDJEMAI

回答

2

是什麼unordered_set查找方法的時間複雜度?

...它是正確的,在你的鏈接頁面:

複雜

平均情況:不變。

最壞情況:在容器的尺寸是線性的。


並且還可以改變散列函數?

是的。再次,看看at the documentation

std::unordered_map需要一個Hash模板參數。這是一個定製點,您可以在其中注入您自己的散列邏輯。定製Hash必須滿足Hash概念。

+0

頁面沒有專門介紹INT類型。 –

+0

@navidmahdian:爲什麼會這樣?如果它沒有具體談論某種類型,這意味着它適用於所有類型。 –

+0

這是真的,但我認爲int類型可能總是在O(1)中找到一個元素,因爲散列更容易 –