【问题标题】:Is python set s.difference_update(t) O(m X n)是 python 设置 s.difference_update(t) O(m X n)
【发布时间】:2015-07-31 12:38:03
【问题描述】:

问题陈述:

我正在解决一个问题,我有一个数据库,其中包含来自文件系统的大量文件列表。 如果从系统中删除了一堆文件,则应该在数据库中更新它们。

方法:

从 db 中查询文件列表和从文件系统中查询文件列表。 然后比较 db 中的每个文件是否在另一个列表中。 找不到就删除 为了避免重复从列表中查找每个文件,我打算在 python 中使用集合和 difference_update() 方法

问题:

在内部,这是否会再次具有 O(m X n) 的复杂度,就像其他重复搜索的方法一样,还是经过优化以降低复杂度?

【问题讨论】:

  • 因为集合中的查找是O(1),而不是列表的O(n),所以整体复杂度将是O(m)

标签: python set time-complexity


【解决方案1】:

由于设置了常量查找时间,它将是注释中所述的O(len(t))
也在http://python-reference.readthedocs.org/en/latest/docs/sets/difference_update.html确认了

【讨论】:

  • 感谢您的快速回复。顺便说一句,还有其他更优化的pythonic方法来实现这个吗??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多