Su arquetípico es un algoritmo de divide y vencerás , que divide (y recombina) el trabajo en tiempo lineal y se repite sobre las piezas. La ordenación por fusión funciona de esa manera: pasa tiempo dividiendo la entrada en dos partes más o menos iguales, ordena recursivamente cada pieza y gastaO ( n ) Θ ( n )Θ ( n logn )O ( n )Θ ( n ) combinando las dos mitades ordenadas.
Intuitivamente, continuando con la idea de dividir y conquistar, cada etapa de división toma tiempo lineal en total, porque el aumento en el número de piezas para dividir coincide exactamente con la disminución en el tamaño de las piezas, ya que el tiempo que toma la división es lineal. El tiempo total de ejecución es el producto del costo total de una etapa de división multiplicado por el número de etapas de división. Dado que el tamaño de las piezas se reduce a la mitad en cada momento, hay etapas de división , por lo que el tiempo total de ejecución es . (Hasta una constante multiplicativa, la base del logaritmo es irrelevante).n ⋅ log ( n )Iniciar sesión2( n )n ⋅ log( n )
Poniéndolo en ecuaciones (), una forma de estimar el tiempo de ejecución de dicho algoritmo es expresarlo recursivamente: T ( n ) = 2 T ( n / 2 ) + Θ ( n ) . Está claro que este algoritmo toma más que tiempo lineal, y podemos ver cuánto más dividiendo por n :
TT( n )T( n ) = 2 T( N / 2 ) + Θ ( n )norte
Cuandon seduplica,T(n)/naumenta en una cantidad constante:T(n)/naumenta logarítmicamente, o en otras palabras,T(n)=Θ(nlogn).
T( n )norte= T( n / 2 )n / 2+ Θ ( 1 )
norteT( n ) / nT( n ) / nT( n ) = Θ ( n logn )
Esta es una instancia de un patrón más general: el teorema maestro . Para cualquier algoritmo recursivo que divide su entrada de tamaño en una piezas de tamaño n / b y toma un tiempo f ( n ) para realizar la división y recombinación, el satisface tiempo de funcionamiento T ( n ) = a ⋅ T ( n / b ) + f ( n ) . Esto lleva a una forma cerrada que depende de los valores de a y b y la forma denorteunn / bF( n )T( n ) = a ⋅ T( n / b ) + f(n )unsi . Si un = b y f ( n ) = Θ ( n ) , los estados teorema maestro que T ( n ) = Θ ( n log n ) .Fa = bF( n ) = Θ ( n )T( n ) =Θ ( n logn )