Невозможно открыть эту ссылку по какой-либо причине. Я все равно попробую. Когда вы используете стратегию деления и завоевания, что вы делаете, вы разбиваете проблему на многие мелкие проблемы, а затем объединяете решения для небольших проблем, чтобы получить решение для основной проблемы. Как решить мелкие проблемы: Разбивая их дальше. Этот процесс разрыва продолжается до тех пор, пока вы не достигнете уровня, где проблема будет достаточно мала, чтобы обрабатываться напрямую.
Как вычислить временную сложность: Предположим, что время, затраченное на ваш алгоритм, - T (n). Обратите внимание, что затраченное время является функцией размера проблемы, то есть n.
Теперь обратите внимание, что вы делаете. Вы разбиваете проблемы, скажем, на k частей каждого размера n/k (они могут быть не равными по размеру, и в этом случае вам придется добавить время, затраченное ими отдельно). Теперь вы решите эти части. Время, затрачиваемое каждой частью, будет T (n/k), так как размер проблемы теперь уменьшается до n/k. И вы решаете их. Итак, время k * T (n/k).
После решения этих небольших проблем вы объедините их решения. Это займет некоторое время. И это время снова будет функцией вашего размера проблемы. (Он также может быть постоянным). Пусть это время O (f (n)).
Таким образом, общее время, затраченное на ваш алгоритм будет: Т (п) = (А * Т (п/к)) + O (F (N))
Вы получили рекуррентное соотношение теперь вы можете решить получить T (n).
Чтобы объяснить это, нам действительно нужно знать ваш текущий уровень понимания. Например, ваша сила в анализе рекурсивного алгоритма и сложности в целом. Я предлагаю вам попытаться найти некоторые интерактивные слайды. –