繁体   English   中英

Dictionary如何从大量数据中搜索特定的键值?

[英]How does Dictionary search a particular key value out of huge amount of data?

我有一个关于C hsarp词典的非常具体的问题。 假设您在字典中有100000个数据

var dictionary = new Dictionary<string, int>();

你已经用...填写了字典

 dictionary.Add("car", 1);
 dictionary.Add("apple", 2);
...
...

现在假设您正在字典中搜索特定字符串

if (dictionary.ContainsKey("apple"))
  {
     // then do this
  }

我的问题是,字典如何从这些密钥中搜索这个特定值? 它是通过线性搜索。 但msdn声称字典搜索的复杂性接近于O(1) LinkMSDN

我对Dictionary的了解是它没有任何内部搜索/排序算法。 链接

任何人都可以解释字典如何将其值存储在内存中以及如何从系统的角度检索值。 我知道作为一名高级程序员,我们不需要考虑.Net的所有这些功能,但很高兴知道。 其实我很想知道。 MSDN表示它使用哈希表,但没有解释。

从您问题中的相同链接 ,您可以看到:

通过使用其键来检索值非常快,接近于O(1),因为Dictionary类是作为哈希表实现的

我相信你需要阅读有关哈希表的内容。

可能一个好的起点是: 哈希表 - 数据结构

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM