Медиана рекуррентного отношения медианного алгоритма

Я знаю, что рекуррентное уравнение линейного выбора (медианный алгоритм медиан) выглядит следующим образом:

T(n) <= an + T(n/5) + T(7n/10)

Но откуда берутся эти термины? Я пытался понять, но я очень запутался. Кто-нибудь может пролить свет?


person Vimzy    schedule 06.02.2015    source источник


Ответы (1)


Лучшая попытка:

Это уравнение предназначено только для случая, когда вы делаете медиану групп из 5. В противном случае оно изменится. Часть уравнения — это время, которое требуется алгоритму, чтобы пройтись по всем элементам и сгруппировать их в 5. T(n/5) — это время, необходимое для нахождения медианы для каждой группы из 5. Поскольку существует n/5 групп по 5 человек.

T(7n/10) займет больше времени...

Когда вы делаете медианы медиан, элементы разбиваются на 4 квадранта. 3/10 элементов больше медианы медиан, 3/10 элементов меньше медианы медиан. Остальные 4/10 делятся на 2 группы по 2/10. Это элементы, в отношении которых вы не уверены, больше они или меньше медианы медиан. Следовательно, максимальное количество элементов, которые могут быть больше или меньше медианы медиан, составляет 3/10 + 2/10 + 2/10 = 7/10. Таким образом, T(7n/10) является частью продолжения уравнения с максимальным сегментом чисел, который больше/меньше медианы медиан....

Надеюсь, в этом есть смысл.

person Programmingjoe    schedule 06.02.2015