我被告知Hashtable
在.NET
使用重新散列以减少/避免碰撞。
IE。“重新哈希的工作方式如下:假设我们有一组不同的哈希函数,H1 ... Hn,并且在从哈希表中插入或检索项目时,最初使用 H1 哈希函数。如果这导致冲突,则尝试 H2 并向前直到 Hn 以避免 Hashtable 中的冲突。”</p>
假设:我们有一个带有 n(其中 n < Infinity)元素的哈希表,其中渐近时间复杂度为 o(1);我们(CLR)在应用一些散列函数(Hn-1 散列函数,其中 n>1)时实现了这一点。
问题:当我们寻找(检索)任何元素(如果使用不同的散列函数)时,谁能解释一下 CLR 如何将 Key 映射到散列码?CLR 如何跟踪(如果有)任何活动对象(哈希表)的哈希函数?
提前致谢