귀하의 T (n) 공식은 완전하지 않습니다. 사실,
모든 사례를 살펴 봅니다. 임의의 지점을 가로 지르는 배열을 분할하여 문제의 크기를 줄이면 감소 된 하위 문제의 확률은 1에서 n 사이가됩니다. 따라서 1/n 확률로 검색 공간은 r이됩니다. 그래서 예상 실행 시간 수를 T (n)을 제공
T(n) = sum (T(r)*Pr(search space becomes r)) + O(1) = sum (T(r))/n + O(1)
임의의 바이너리 종류의
T(n) = average(T(r)) + O(1)
하자 예상 시간 복잡도가된다.
T(n) = [ T(1)+T(2)+...+T(n)]/n + 1
n*T(n) = T(1)+T(2)+...+T(n) + n
(n-1)*T(n-1) = T(1)+T(2)+...+T(n-1) + n-1 [substituiting n by n-1]
n*T(n) - (n-1)*T(n-1) = T(n) + 1
(n-1)*T(n) - (n-1)*T(n-1) = 1
(n-1)*T(n) = (n-1)*T(n-1) + 1
T(n) = 1/(n-1) + T(n-1)
T(n) = 1/(n-1) + 1/(n-2) + T(n-2) [ T(n-1) = T(n-2) + 1/(n-2) ]
...
T(n) = 1 + 1/2 + 1/3 + ... + 1/(n-1) = H(n-1) < H(n) = O(log n)
[ H(n) = reciprocal sum of first n natural numbers ]
그래서
,
T(n) = O(log n)
Harmonic number
bound of H(n)
출처
2016-10-14 04:36:34
v78
최악의 경우 O (n)이 난수 생성기는 항상 1 또는 n을 선택하는 일이 생기면입니다. –
@ MarkRansom ... 확률 2/계승 (n)에서 발생합니다. 다른 말로하면 n의 작은 값에 대한 계산 시간에 눈에 띄는 영향은 없으며 n> 10에 대한 운석의 충돌보다 훨씬 덜 가능성이 있으며 n> 20에 대해서는 "이 우주에서 결코 일어나지 않을 것"이라고합니다. – pjs
@pjs 나는 수학적 의미에서 최악의 경우에 대해 말하고 있었고 확률은 저주를 받았다. 실용적인 논의와는 많이 다릅니다. 질문은 "단단한 경계"에 관한 것이었기 때문에 나는 그것이 어떤 도움이 될 것이라고 생각했습니다. –