我对带有递归函数的Big-O表示法感到困惑

时间:2019-03-05 22:36:48

标签: c recursion time-complexity big-o computer-science

如何找到递归函数的运行时间。例如:

void fun_list(LLnode_t * head) {
    if (head == NULL) {
        printf("\n");
        return;
    }
    printf("%d ", head-> data);
    if (head->next != NULL) {
        fun_list(head->next);
    }
    printf("%d ", head->data);
} 

我知道我们应该找到递归案例和基础案例的运行时间。我认为基本案例的运行时间为O(1)。我该如何找到递归案例的运行时间?

1 个答案:

答案 0 :(得分:1)

时间复杂度为O(n),其中“ n”是递归函数被调用的次数。它基本上是通过将基本案例的复杂性乘以递归调用它的次数来计算的。因此复杂度是线性的。