Daré una respuesta diferente, ya que es demasiado para un comentario y trata un enfoque más general.
Entonces, en ESL, describen de hecho el tiempo de cálculo para una bifurcación (más precisamente me parece una división y conquista).
Denotamos con el número de observaciones y con el número de nodos hijos, cuando cultivamos un árbol. Supongo que no perdemos en general si consideramos que está arreglado. Además, podemos denotar con el tiempo de procesamiento para calcular puntos divididos en un nodo dado.NKKf(N)
Por lo tanto, podemos escribir recursivamente la fórmula para el tiempo de ejecución como:
consideramos aquí que los nodos secundarios dividen el conjunto de datos de entrada de tamaño en subconjuntos de de igual tamaño . Sabemos que este es el mejor caso.
T(N)=f(N)+K∗T(N/K)
NKN/K
Sin embargo, podemos ver que esta es una aplicación bien conocida del Master Theorem. Esto está bien documentado en el libro CLRS . Tengo la tercera edición y los detalles están en la sección 4.5 y la prueba está en la siguiente sección. No recuerdo bien los detalles, pero recuerdo que no es demasiado complicado si uno expande la recursividad y agrupa algunos términos.
Sin embargo, lo importante para este caso es que cuando - tiempo lineal, el tiempo resultante del algoritmo es . Este tiempo se calcula para una sola variable de entrada, por lo tanto, nuestro tiempo total para las variables seríaf(N)=O(N)T(N)=O(NlogN)PO(PNlogN)
Este tiempo es alcanzable para el crecimiento de los árboles, si todas las entradas se ordenan inicialmente en , y encontrar el valor de división toma tiempo lineal en estas entradas ordenadas. Aquí podemos aplicar el algoritmo de variación en línea, como mencioné en mi respuesta anterior para . Paraes aún más fácil encontrar la mediana. Confieso que nunca probé alguna otra función de pérdida para árboles.O(PNlogN)L2=1N(y−y^)2L1=1N|y−y^|
Sin embargo, tenga en cuenta que el teorema maestro se aplica para el mejor caso si las divisiones son del mismo tamaño. El peor de los casos es cuando la división es muy desequilibrada. Allí, se puede aplicar un caso diferente de Master Theorem y el tiempo se convertirá en .O(PN2)
Como conclusión, supongo que los autores de ESL usan el término típicamente de una manera que se usa para describir el algoritmo de ordenación rápida. Normalmente, la ordenación rápida proporciona el tiempo de ejecución de , teniendo el peor de los casos , para algunas configuraciones de datos específicas.O(NlogN)O(N2)
Espero que ayude.