Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这个带有for循环的递归调用的大O时间复杂度是多少_Java_Algorithm_Big O - Fatal编程技术网

Java 这个带有for循环的递归调用的大O时间复杂度是多少

Java 这个带有for循环的递归调用的大O时间复杂度是多少,java,algorithm,big-o,Java,Algorithm,Big O,问题,当分析以下代码的时间复杂度时(不要考虑空间复杂度)。这是O(n)吗?递归调用计数是否为常量?我不确定,因为for循环中有递归调用 public void printViews(View view) { if (view instanceof ViewGroup && ((ViewGroup)view).getChildCount() > 0) { ViewGroup viewGroup = ((ViewGroup)view);

问题,当分析以下代码的时间复杂度时(不要考虑空间复杂度)。这是O(n)吗?递归调用计数是否为常量?我不确定,因为for循环中有递归调用

public void printViews(View view) {
        if (view instanceof ViewGroup && ((ViewGroup)view).getChildCount() > 0) {

            ViewGroup viewGroup = ((ViewGroup)view);
            int childCount = viewGroup.getChildCount();

            for (int i = 0; i < childCount; i++) {
                Log.d("Test", viewGroup.getChildAt(i).getClass().getSimpleName());

                if (viewGroup.getChildAt(i) instanceof ViewGroup)
                    printViews(viewGroup.getChildAt(i));  //recursion
            }
        } else {
            Log.d("Test", view.getClass().getSimpleName());
        }
    }
public void打印视图(视图){
if(视图组的视图实例&((视图组)视图).getChildCount()>0){
ViewGroup ViewGroup=((ViewGroup)视图);
int childCount=viewGroup.getChildCount();
for(int i=0;i
它是O(n)

您所做的是查看树上的DFS。 递归调用不是常量,但它是遍历树的一种方式

有关更多详细信息,请参阅链接:
它是O(n)。因为您只遍历了一次树层次结构。递归方法即使在for循环中,也用于遍历视图及其子体。

如果您想说“这是O(n)”的话,您需要弄清楚n是什么。@AndyTurner感谢您的评论。n与子视图的数量相同。直到舒基指出,我才意识到,我只是在浏览一棵视图树。