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

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

【问题讨论】:

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

标签: python tuples time-complexity


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多