¿Qué es la complejidad de Big-O Tiempo de esta llamada recursiva con un bucle de

devguy:

Pregunta, al analizar la complejidad del tiempo de la siguiente código (no importa la complejidad del espacio). Sería esta O (n)? la llamada recursiva contar como constante? No estoy seguro debido a la llamada recursiva dentro del bucle.

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());
        }
    }
SA:

Está en).

Lo que está haciendo es DFS en el árbol de vista. La llamada recursiva no es constante, sino que es una manera de recorrer el árbol.

vea el enlace para más detalles: https://en.wikipedia.org/wiki/Depth-first_search

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=230332&siteId=1
Recomendado
Clasificación