Cómo resolver la siguiente recursividad usando el árbol de recursión

Para especificar completamente la recursión, debe decir cuál es la base. Asumiré que la base es [matemática] T (1) = c [/ matemática] donde c es una constante positiva. Por simplicidad, supondré que N es una potencia de 2. Ie [matemáticas] N = 2 ^ k [/ matemáticas] para algún entero positivo k. Primero, dibuje el árbol y etiquete cada nodo con el tamaño del problema.

El tamaño del problema en el nivel inferior es simplemente 1 (ya que [matemática] N = 2 ^ k [/ matemática]). La cantidad de trabajo realizado en cada nodo de nivel inferior es solo la constante [matemática] c [/ matemática]. La cantidad de trabajo realizado en cada nodo interno es el cuadrado del tamaño del problema (esto se deduce directamente del término [matemática] + N ^ 2 [/ matemática] de la recurrencia). El tamaño del problema se divide por 2 para cada nivel sucesivo y el número de nodos se multiplica por 3 para cada nivel sucesivo. El total para el nivel inferior es solo [matemáticas] 3 ^ k * c = 3 ^ (lg n) c = n ^ (lg 3) c [/ matemáticas] donde la base del registro es 2. El total para el resto del árbol es la suma, de i = 0 a i = k-1, de [matemáticas] (3 ^ i (N / 2 ^ i) ^ 2) [/ matemáticas]. Puede factorizar la [matemática] N ^ 2 [/ matemática] de cada término de la suma. Puede escribir el resto de la suma como una serie geométrica que debe estar delimitada por una constante (ya que una secuencia geométrica infinita se evalúa como una constante). [math] N ^ 2 [/ math] domina el término [math] N ^ (lg 3) [/ math] para el nivel inferior, por lo que la recurrencia se evalúa como theta grande de [math] N ^ 2. [/ math]

Al expandir la recursividad observamos que

[matemáticas] T (n) = \ sum_ {k = 0} ^ {log (n)} (3/4) ^ kn ^ 2 [/ matemáticas]

Incluso en la suma infinita de este GP, el término dominante de la expresión es [matemática] n ^ 2 [/ matemática]

Por lo tanto, [matemática] T (n) [/ matemática] es [matemática] O (n ^ 2) [/ matemática]

More Interesting

¿Cuál es el algoritmo detrás de la creación de una nueva fuente que solo muestra publicaciones de tus seguidores?

¿Cuál es la mejor manera de explicar este método recursivo en Java?

¿Qué algoritmos existen para la reconstrucción de un conjunto de vectores de un diccionario de cardinalidad más pequeña?

¿Cuál es la razón por la que el conjunto de todos los enteros contiene 0?

¿Existe un algoritmo que lo ayude a visualizar las distancias entre los n nodos de manera óptima?

¿Cuántas conjeturas necesitarías para determinar el número entre 1 y 100 en el peor de los casos usando una búsqueda lineal?

¿Es necesario que el vector se ordene para usar lower_bound?

¿Qué tan difícil es aprender por sí mismo cómo codificar algoritmos eficientes?

¿El uso de algoritmos en una clave de contraseña típica de 256 bits que siempre está cambiando pero que aún se muestra al usuario (como en un teléfono, por ejemplo) para crear código requeriría supercomputadoras más rápidas disponibles para superarlo?

¿Qué opinas de una educación en informática donde el profesor de 'algoritmos y programación' ni siquiera sabe acerca de la notación Big O?

Se da una matriz (n). La matriz puede atravesarse por saltos de tamaño <= k. Si en el índice i, un salto puede aterrizar en cualquier lugar desde i + 1 hasta i + k index.

Cómo encontrar el enésimo número de Ulam rápidamente

¿Cuál es la diferencia entre los cursos avanzados de algoritmos 6.046 y 6.854 en el MIT?

¿Por qué es imposible tener un tipo de comparación mejor que el tiempo O (nlogn)?

¿Cuál era el objetivo de Pedro Domingos al escribir 'El algoritmo maestro'?