Лист имеет равную вероятность быть размером от 1
до k
.
Таким образом, ожидаемый размер листа составляет k/2
.
Если ожидаемый размер листа k/2
, то мы ожидаем n/(k/2)=(2n)/k
таких листьев.
Для простоты предположим, что мы ожидаем n/k
таких листьев и что ожидаемый размер каждого листа равен k
.
Ожидаемое время работы INSERTION-SORT
составляет O(n^2)
.
Мы обнаружили, что в упражнении 5.2-5 и задаче 2-4c.
Таким образом, ожидаемое время использования INSERTION-SORT
составляет O((n/k)*(k^2))=O(nk)
.
Если мы ожидаем, что наши группы разделов будут иметь размер k
, тогда ожидается, что высота дерева рекурсии будет lgn-lgk=lg(n/k)
, так как мы планируем остановить lgk
раньше.
На каждом уровне дерева рекурсии выполняется O(n)
операций.
Это приводит нас к O(nlg(n/k))
.
Мы заключаем, что ожидаемое время работы составляет O(nk+nlg(n/k))
.
Теоретически, мы должны выбрать k=lgn
, так как таким образом мы получим наилучшее ожидаемое время работы O(nlgn)
.
На практике мы должны выбрать k
для одного из значений около lgn
, которое дает нам лучшую производительность, чем просто запуск RANDOMIZED-QUICKSORT
.
Во второй части ответа довольно широко используются обозначения big-O, поэтому для более точного выбора k
перейдите по ссылке, указанной во втором ответе Анкуша.