【发布时间】:2015-02-21 11:43:23
【问题描述】:
所以我编写了一些 Java 代码来列出一个目录及其子目录中今天已修改的文件。我需要一点帮助来理解时间和空间的复杂性。
代码:
公共类 FileInDir {
File[] files = null; Date d = new Date(); long mill; public void listTodayFiles(String path) { File dir = new File(path); files = dir.listFiles(); for(File file : files){ mill = file.lastModified(); Date f = new Date(mill); if(f.getDate() == d.getDate()){ if(file.isFile()) System.out.println("FILE: " + file.getName() + " WAS LAST MODIFIED ON: " + f); else if(file.isDirectory()) listTodayFiles(file.getAbsolutePath()); } } }}
所以据我了解,将所有文件存储到数组中需要 O(n) 时间,循环需要 O(n) 时间。我不确定递归调用的复杂性。我也不确定 if 语句是否在时间或空间复杂性中起作用。空间复杂度也会为 O(n),因为它需要存储每个元素(文件)。
谢谢:D
【问题讨论】:
标签: java time complexity-theory space analysis