Я смущен решением этой проблемы временной сложности.

T(n) = T(n-1)

Я знаю, что в худшем случае быстрой сортировки T(n) = T(n-1) + T(1) + n

Что оценивается как (n-1) + (n-2) + (n-3) + ... + 1, а эта геометрическая последовательность равна O(n^2)

Тем не мение. Я вижу ответы на stackoverflow, в которых написано T(n) = T(n-1) + c = O(n).

Как это возможно, если оно также равно (n-1) + (n-2) + (n-3) + ... + 1, что равно O(n^2)

Может кто-нибудь объяснить.

2
user2158382 15 Май 2014 в 04:35

2 ответа

Лучший ответ

T(n) = T(n-1) + c не равно (n-1) + (n-2) + (n-3) + ... + 1, потому что добавляемые термины являются константами. По сути:

Ничего не добавляя:

T(n) = T(n-1)
0 + 0 + 0 + ... + 0 = 0
O(1)

Добавление константы:

T(n) = T(n-1) + c
c + c + c + ... + c = nc
O(n)

Добавление переменной:

T(n) = T(n-1) + n
1 + 2 + 3 + ... + n = n(n+1)/2
O(n^2)
9
fgb 15 Май 2014 в 01:52
T(n) = T(n-1) -> T(n-1) = T(n-2) --> T(n) = T(0)

Что 0 или O (1)

0
cgnorthcutt 15 Май 2014 в 00:43