具有非常复杂基本情况的递归

时间:2016-09-07 16:01:50

标签: recursion complexity-theory

是否有任何递归算法,其基本情况的时间复杂度大于常数? CLRS表示通常会出现复发情况

  

T(N)= O(1)

表示基本情况。非一般情况怎么样?什么时候我们不能忽视地板和天花板的情况?

1 个答案:

答案 0 :(得分:0)

这完全取决于功能定义。您可以随意制作递归函数。例如,想象一下这样的数组排序函数:

import csv
with open("infile.csv","r") as infile:
    with open("myfile.csv","w") as myfile:
        reader = csv.reader(infile) 
        wr = csv.writer(myfile)

        column1 = ""
        for fields in reader:
            if len(fields) == 1:
                column1 = fields[0]
            else:
                wr.writerow([column1]+fields)
                column1 = ""

递归步骤只是O(log-base-2(list_range / 10))。 基本情况是O(array_size ^ 2)。

顺便说一句,这是一个草书资本" O" (对于"顺序" =="在"的顺序),而不是theta。

当然,这不是一个典型的案例,但我希望它说明了这个原则:算法的分而治之的部分可能只会将问题简化为易处理的问题,例如一个已知的解决方案。打包子程序。