Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net:在字典中按键搜索值的时间复杂度是常数时间还是log2(n)?_Asp.net_Search_Data Structures_Dictionary_Time Complexity - Fatal编程技术网

asp.net:在字典中按键搜索值的时间复杂度是常数时间还是log2(n)?

asp.net:在字典中按键搜索值的时间复杂度是常数时间还是log2(n)?,asp.net,search,data-structures,dictionary,time-complexity,Asp.net,Search,Data Structures,Dictionary,Time Complexity,我需要一个数据结构在dotnet中,我可以在固定的时间内搜索一个项目。这意味着数据结构应该在内部实现索引。字典是用于此目的还是用于其他目的 是的,使用字典(如果您使用的是较旧版本的.NET,则使用哈希表)。确保您在字典中填充的对象具有良好的散列值(查看是否为您在字典中用作键的对象重写GetHashCode()和Equals()。如果数据对象的哈希代码很差,则性能将开始下降。是的,为了回答你的问题,哈希表/字典中的查找应该是相对恒定的时间(书籍通常说它是O(1),但这是有争议的)。查找性能将由许多

我需要一个数据结构在dotnet中,我可以在固定的时间内搜索一个项目。这意味着数据结构应该在内部实现索引。字典是用于此目的还是用于其他目的

是的,使用字典(如果您使用的是较旧版本的.NET,则使用哈希表)。确保您在字典中填充的对象具有良好的散列值(查看是否为您在字典中用作键的对象重写GetHashCode()和Equals()。如果数据对象的哈希代码很差,则性能将开始下降。是的,为了回答你的问题,哈希表/字典中的查找应该是相对恒定的时间(书籍通常说它是O(1),但这是有争议的)。查找性能将由许多因素决定:

  • 散列函数(确定分布)
  • 表如何处理冲突?探测?水桶?(大多数实现都使用bucket)
  • 表的大小可以调整吗?它如何调整大小?小增量?2的幂?素数
  • 等等