首页 > 解决方案 > Python 中 cmp() 的复杂性是什么?

问题描述

python 中 cmp() 的一般复杂性是多少?

我有两个字典。两者具有相同的长度,都具有相同的键。键和值是字符串。将此 dicts 与 cmp() 进行比较的复杂性是什么?如果字典不同,那么复杂度是否不同于它们相等?

dict1 = {
    'a': 'f',
    'b': 'g',
    'c': 'h',
    'd': 'i'
}

dict2 = {
    'a': 'f',
    'b': 'g',
    'c': 'h',
    'd': 'i'
}

cmp(dict1, dict2)

标签: pythondictionarytime-complexity

解决方案


python 中 cmp() 的一般复杂性是多少?

没有一个。cmp()简单地委托给__cmp__数据模型方法(以及tp_compare用 C 实现的“本机”类型的插槽),其实现是完全任意的。因此,您需要想知道的是特定类型__cmp__的复杂性是多少。

为了了解dictscmp的复杂性,您必须深入研究 Python 2 代码(因为 cmp 已从 python 3 中删除)。

请注意,这只是故事的一部分,因为集合cmp将是递归的(它cmp的​​内容会如此,因此特定 dict 实例的复杂性将取决于它的具体情况)。


推荐阅读