检查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中使用IF语句检查两个列表的元素是不是相等?