包含for循环

时间:2016-09-19 17:51:07

标签: algorithm time-complexity

此功能的时间复杂度(O)是多少?我的代码中也有mergesort和binary搜索。我知道二进制搜索是O(log n),mergesort是O(nlogn)但是这个算法的复杂性是什么?

import os

mydatafile = open("myss.csv","w+")
def rec(searchpath):
    if os.path.isdir(searchpath):
        for i in os.listdir(searchpath):
            childpath = os.path.join(searchpath,i)
            if not os.path.isdir(childpath):
                mydata = i + ", " + childpath + "\n"
                mydatafile.write(mydata)
            else:
                mydata = i + ", " + childpath + "\n"
                mydatafile.write(mydata)
                rec(childpath)
rec("C:\Python27")
mydatafile.close()

1 个答案:

答案 0 :(得分:1)

I / O函数在某种程度上掩盖了输入。您可能认为根目录searchpath的名称是输入,但将输入视为表示目录层次结构的根树是更合理的。假设(再次,合理地)在每个节点上完成了一定量的工作,运行时间就是O(n)。