En un algoritmo de tiempo lineal, ¿cómo se comportaría el algoritmo si utilizáramos la mediana del máximo de cada conjunto de 5?

La prueba es solo ligeramente diferente de probar que el algoritmo de selección se ejecuta en tiempo [matemático] O (n) [/ matemático].

Supongamos que estamos tratando de calcular la mediana de la secuencia [matemáticas] A [/ matemáticas], y para facilitar la demostración, supondré que la longitud de [matemáticas] A [/ matemáticas] es un múltiplo de [matemáticas] 5 [/mates]. ([matemáticas] n = | A | [/ matemáticas])

Suponga que [matemática] A [/ matemática] se divide en [matemática] n / 5 [/ matemática] secuencias de tamaño [matemática] 5 [/ matemática], [matemática] B [/ matemática]. [matemáticas] B_1 = (A_1, A_2, A_3, A_4, A_5) [/ matemáticas], [matemáticas] B_2 = (A_6, A_7, A_8, A_9, A_ {10}) [/ matemáticas], … y así sucesivamente.

Entonces, [matemáticas] m_i = max B_i [/ ​​matemáticas]. Nuevamente, para facilitar la demostración, digamos que [math] B [/ math] está ordenado con respecto a [math] m [/ math]. (El proceso de clasificación no forma parte del algoritmo). Pongamos la mediana de [matemáticas] m [/ matemáticas] como [matemáticas] M [/ matemáticas].

En el algoritmo de selección, la secuencia original A se divide en dos con elementos más pequeños que [math] M [/ math] a la izquierda de [math] M [/ math], y los más grandes que a su derecha. En el caso donde [math] M [/ math] es la mediana del máximo de cada [math] B_i [/ ​​math], [math] M [/ math] es definitivamente más grande que casi la mitad de los elementos en [math] ] A [/ math], ya que todos los elementos en [math] B_1, B_2, …, B_ {k-1} [/ math] son ​​más pequeños que [math] M [/ math]. Además, hay casos en los que los elementos en [matemáticas] B_ {k + 1}, B_ {k + 2}, …, B_ {n / 5} [/ matemáticas], a excepción de [matemáticas] m_i [/ ​​matemáticas] que corresponde a cada [matemática] B_i [/ ​​matemática], son más pequeños que [matemática] M [/ matemática]. Por lo tanto, el número de elementos en [matemática] A [/ matemática] que son definitivamente mayores que [matemática] M [/ matemática] es aproximadamente [matemática] n / 10 [/ matemática].

Entonces, podemos deducir la siguiente fórmula de recurrencia,
[matemática] T (n) \ le T (9n / 10) + T (n / 5) + O (n) [/ matemática]. [math] T (9n / 10) [/ math] proviene de la prueba de que puede haber solo [math] n / 10 [/ math] elementos más grandes que [math] M [/ math]. [matemática] T (n / 5) [/ matemática] viene de encontrar la mediana de [matemática] m [/ matemática], y [matemática] O (n) [/ matemática] proviene de la partición [matemática] A [/ matemática ] en secuencias de longitud [matemáticas] 5 [/ matemáticas].