Рассмотрим следующее дерево рекурсии для быстрой сортировки, которая постоянно делит подзадачи в соотношении 3 к 1 (источник: Khan Academy).
Я понимаю, что подпрограмма разделения в быстрой сортировке перебирает каждую подзадачу и, таким образом, O(n)
. Однако я не понимаю, почему «Общее время разделения для всех подзадач» равно cn
, а не только n
. Что представляет собой константа в этом случае? Когда/почему это может быть что угодно, кроме 1? Является ли c
чем-то, что вы можете решить, или это скорее «концептуальная» переменная?
Если я правильно понимаю, подпрограмма разделения посещает каждый элемент в данной подзадаче ровно один раз. А поскольку сумма всех подзадач на каждом уровне равна n
, не означает ли это, что на каждом уровне выполняется ровно n
работы (по крайней мере, до границы log n / log4
)?
Спасибо
c
на каждый разбиваемый элемент. - person btilly   schedule 18.05.2018