当前位置: 首页 > 面试题库 >

交叉口复杂度

南门正祥
2023-03-14
问题内容

在Python中,您可以得到两个集合的交集:

>>> s1 = {1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> s2 = {0, 3, 5, 6, 10}
>>> s1 & s2
set([3, 5, 6])
>>> s1.intersection(s2)
set([3, 5, 6])

有人知道这种相交(&)算法的复杂性吗?

编辑: 此外,有人知道Python集背后的数据结构是什么吗?


问题答案:

答案似乎是一个搜索引擎查询。您也可以使用此直接链接到python.org的“时间复杂性”页面。快速总结:

Average:     O(min(len(s), len(t))
Worst case:  O(len(s) * len(t))

编辑:正如雷蒙德在下面指出的那样,“最坏情况”的情况不太可能发生。我最初将其包括在内是为了彻底,我将其留给下面的讨论提供背景,但我认为Raymond是正确的。



 类似资料:
  • 此操作将两个或多个形状作为输入,并返回它们之间的交叉区域,如下所示。 您可以使用名为intersect()的方法对形状执行交叉操作。 由于这是一个静态方法,您应该使用类名(Shape或其子类)来调用它,如下所示。 Shape shape = Shape.intersect(circle1, circle2); 以下是交叉操作的示例。 在这里,我们绘制两个圆并对它们执行交叉操作。 将此代码保存在

  • 如果二叉树是平衡的,那么二叉搜索的最佳运行时间是O(log(n))。最坏的情况是,如果二叉树非常不平衡,它基本上表示一个链表。在这种情况下,二进制搜索的运行时间将为O(n)。 但是,如果树只是稍微不平衡,就像这棵树的情况一样: 如果我没记错的话,最好的情况仍然是O(log n)。但是最坏的情况是什么?

  • 我的网页(wp1)有一个iframe。iframe的来源是另一个网页(wp2)。我在wp1上有一些javascript函数,试图操纵wp2的内容。然而,浏览器会让“阻止原点为空的帧”访问跨原点帧我怎么才能绕过这个?

  • 假设BST的高度是h。如果我们要删除一个有两个子节点的节点,那么该过程的时间复杂度是多少。 我知道在普通的二叉树中,删除的时间复杂度是O(h);O(n)最坏情况和O(logn)最好情况。但是由于我们用它的右子树的最小节点替换删除节点的键,因此需要更多时间来找到最小键。 那么,有人知道如何解释这种情况下的时间复杂性吗?

  • 函数 A 数据操作 1; 数据操作 2; 函数 B 数据操作 3; -> 函数 A(); 函数 C 数据操作 4; -> 函数 A(); 则称,A 为 B,C 的交叉操作。 如果,A,B,C 都需要保证事务性,则 A 为 B, C 的交叉事务 Nutz.Dao 的原子操作支持事务嵌套,所以你可以这么实现这三个函数: 函数 A Tran

  • 交叉验证 那么什么时候才需要交叉验证呢?交叉验证用在数据不是很充足的时候。比如在我日常项目里面,对于普通适中问题,如果数据样本量小于一万条,我们就会采用交叉验证来训练优化选择模型。如果样本大于一万条的话,我们一般随机的把数据分成三份,一份为训练集(Training Set),一份为验证集(Validation Set),最后一份为测试集(Test Set)。用训练集来训练模型,用验证集来评估模型预