Количество столбцов от 0 до
медианы пятерок =n/10-O(1)
Количество эл-тов
в этих столбцах, меньших медианы пятерок, = 3/5 * 5n / 10 –O(1) = 3/10 n -O(1)
Максимальный из двух оставшихся
кусков (разбитых медианой пятерок) имеет размер ≤ n- 3/10 n +O(1)
Пусть T(n) = максимальное время поиска k-ой статистики на массиве из n эл-тов
T(n)≤ O(n) + T(n/5)
+O(1) + T(7/10 n) +O(1)
Предположим, что для i<n: T(i)<ai,
то
T(n)≤
O(n) + T(n/5) +O(1) + T(7/10 n) +O(1)≤ O(n)+an/5 +a 7/10 n=O(n)+ a 9/10 n
= (O(n)-an/10) + an
выбираем a так, что (O(n)-an/10)≤ 0, То имеем
T(n)≤ an
Теорема.
Алгоритм
FindStat3
работает за время T(n)=Θ(n) и требует Θ(1) доп.памяти в стеке и Θ(n) доп.памяти в куче.