递归函数的时间复杂度

时间:2013-04-06 16:51:28

标签: java recursion time-complexity asymptotic-complexity

我有一个接收矩阵(2维数组[] [])的Java函数,并为该数组创建一个动态变化选项数组,然后为动态数组的每个选项递归创建一个动态数组。 最终,对于N个选项之一中的每个选项,它会创建N个其他选项。 我被告知时间复杂度的函数是T(n)= T(n)* n,这可能吗?在大O符号中它的渐近时间复杂度是什么?

1 个答案:

答案 0 :(得分:0)

如果递归关系是T(n)= nT(n),那么递归永远不会停止。该递归关系意味着每个子问题与原始问题的大小相同。在递归函数中,如果每个子问题与原始问题的大小相同,则意味着递归不会结束。从你的问题来看,这听起来你的功能在原始矩阵上运行一次,然后在第一个函数应用程序的结果上运行一次,然后停止。这不是一个真正的递归函数,并不真正适合计算时间复杂度的递归关系模型。但是,计算时间复杂度也非常简单,因为你真的只需要加总所有的计算。