我才刚刚开始学习时间复杂度,如何找到以下代码的时间复杂度
engine="openpyxl"
仅考虑循环时,时间复杂度将为O(n)。但是考虑内部函数和返回值呢?我想知道它如何影响时间复杂度。
感谢您的任何帮助,谢谢
答案 0 :(得分:3)
这是O(N)。
num[i] > num[0]
都为false,则for循环将迭代该序列,不进行任何交换或反转,然后您就完成了。 O(N)。num[i] > num[0]
为 true ,则将交换一对(O(1)),迭代其余序列,然后反转它们(O(N)),然后再完成一次辛苦的return;
。即,这是O(N)。
答案 1 :(得分:2)
交换函数本质上是O(1),因为它具有交换两个索引的一组操作数。另一方面,反向函数为O(n),因为它遍历整个数组以将其反向,如documentation
所示因此,假设您要反转数组n次(假设j在for循环中可以为0),那么我想说,如果您没有return语句,则复杂度将达到O(n ^ 2)。 / p>
使用return语句,您不会在每次迭代中反转数组,而是在退出后仅反转一次。所以O(n)(for循环)+ O(n)(反向)= O(n)