Python:带元组和字符串切片的函数的复杂性

时间:2019-03-29 01:54:23

标签: python time tuples time-complexity space

我不确定如何得出以下两个函数的时间和空间复杂度。

在以下函数中,calver-test-2019.03.29.tar.gz是字符串的元组,而schedule是字符串。我认为这里的时间复杂度为O(n ^ 2),因为对于每个递归,在对course进行切片然后将其连接到长度为n个字符串的元组时,它的时间复杂度为O(n)。总共有n个递归-因此,O(n * n)= O(n ^ 2)。

对于发生切片然后进行级联的部分,是因为我在技术上将字符串元组(schedule[0])的每个元素添加到一个字符串(schedule[1:])上,该元组中总共有n个元素?

对于空间复杂度,我认为它也是O(n ^ 2),因为每次进行切片和串联时,都会创建一个新的n元组空间。在n次递归中会发生这种情况,因此,O(n * n)= O(n ^ 2)。

schedule[0]

在以下函数中,def drop_class(schedule, course): if schedule==(): return () elif schedule[0] == course: return schedule[1:] else: return (schedule[0],) + drop_class(schedule[1:], course) letter都是字符串。 我认为,由于上述示例中的相同原因,这两者的时间和空间复杂度也分别为O(n ^ 2)。

word

但是,我仍然不确定我是否以正确的方式解决问题,并且希望能对此提供一些指导。谢谢。

0 个答案:

没有答案