检查python中两个元组是不是相等的时间复杂度

Posted

技术标签:

【中文标题】检查python中两个元组是不是相等的时间复杂度【英文标题】:time complexity to check if two tuples equal in python检查python中两个元组是否相等的时间复杂度 【发布时间】:2022-01-13 21:19:13 【问题描述】:

给定两个元组,一个大小为 m,另一个大小为 n,检查它们是否相等的时间复杂度是多少?和检查frozensets的时间复杂度一样吗?

【问题讨论】:

代码到底是什么? “相等”和“大小相等”不是一回事。 顺便说一句,欢迎来到 Stack Overflow!如果需要提示,请查看tour 和How to Ask。 大小相等是 O(1)。 如果大小相同,这是一个递归问题——对于每个对应的元素,它必须检查它们是否也相等。所以总复杂度取决于嵌套深度。 对不起,我的意思是平等。大小不相等。 【参考方案1】:

查找tuple 大小的时间复杂度为 O(1),因为每个元组的大小都保存在对象中(即它不是链表)。

更准确地说,大小是使用Py_SIZE 宏从ob_size 成员中获取的。看看the source of CPython。

虽然这是有道理的,并且可能由 Python 的所有实现完成,但我认为这是一个实现细节不是语言特性

【讨论】:

以上是关于检查python中两个元组是不是相等的时间复杂度的主要内容,如果未能解决你的问题,请参考以下文章

检查两个 Python 函数是不是相等

python - 如何在python中使用IF语句检查两个列表的元素是不是相等?

Python set([]) 如何检查两个对象是不是相等?一个对象需要定义哪些方法来自定义它?

如何检查 Lua 中的两个值是不是原始相等?

Python乘以相等长度的元组

如何在javascript中检查两个数字是不是相等[重复]