sra*_*sra 18 c# benchmarking dictionary sorteddictionary
正如我在上一篇文章中写的那样,我对c#世界还是一个新手,所以我写了一个小基准来比较Dictionary,Hashtable,SortedList和SortedDictionary.该测试运行8000次迭代,从50到100000个元素.我测试了添加新元素,搜索元素并循环遍历一些元素.结果就像我预期的那样,除了SortedDictionary的结果,这让我感到很困惑......所有结果都很慢.所以我错过了关于排序字典概念的一些内容.我已经问了谷歌,但我发现的所有其他人都得到了相同的测试结果.根据他们的测试实施略有不同.我的问题再次出现:为什么SortedDicrionary比其他所有人慢得多?
Eti*_*tel 24
SortedDictionary实现为二叉搜索树.因此,访问元素是O(lg(n)).Dictionary是一个哈希表,其复杂度为O(1),用于访问.
当您需要对数据进行排序(Dictionary没有已定义的顺序)时,SortedDictionary非常有用.字典适用于大多数情况.
答案很简单,SortedDictionary
如果需要排序的字典,则可以使用。
请记住,尽管它在您的测试中以最慢的速度结束,但仍不算慢。如果您SortedDictionary
确实需要做什么,那是最好的解决方案。使用a Dictionary
或a 执行相同操作SortedList
会非常慢。
归档时间: |
|
查看次数: |
13780 次 |
最近记录: |