c# - Python 与 C# 字典

标签 c# python dictionary

我已经使用 Python 编写代码一段时间了,我习惯于认为字典具有最坏情况下的 O(n) 时间复杂度 ( source )。但是,在工作中我必须使用 C#,我最近才发现 C# 中的字典具有更好的时间复杂度 ( source )。这是为什么? Python 字典与 C# 字典相比有哪些优势?

顺便问一下,哪种实现更常见?如果我不得不使用另一种语言的标准库中的字典,它们最可能具有的时间复杂度是多少?

谢谢!

最佳答案

MSDN 文档谈到平均用例时间复杂度(更具体地说,他们说复杂度“接近”给定函数),这些与 Python 文档中介绍的相同。 Python 还提供了最坏情况的复杂性。对于某些操作,MSDN 还提供了最坏情况估计(例如:http://msdn.microsoft.com/en-us/library/k7z0zy8k%28v=vs.110%29.aspx)。

将平均情况与最坏情况进行比较没有意义。

在实践中跳过理论:平均情况描述了您在执行操作时应该期望的一般情况。最坏的情况会告诉您,有时在某些特定条件下和/或对于某些特定数据,操作可能会执行得更慢。

此外,最好专注于一项特定操作。笼统地讨论“字典的复杂性”也没有多大意义。

关于c# - Python 与 C# 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23912373/

相关文章:

c# - XML根据时间戳删除节点C#

c# - 仅将 LayoutTransform 应用于父级而不应用于任何特定的子级

python - 使用三元图的元组键将 Pandas 数据框转换为字典

python - 可以使用 python 字典理解来创建子字符串及其位置的字典吗?

python - 来自其他字典值的最大键在 Python 中的函数

c# - 在 F# 中处理空值

C#标签颜色改变

python - Django:在事务中保存多个 ManyToMany 字段

python - 使用 django 按类别(多对多字段)过滤内容

python - 多处理池返回错误结果