Quicksort 퀵정렬
Partition을 이용해 나눈다.

unrestricted 구간은 아직 정렬이 되지 않은 구간이다.
파티션 함수 내용

Loop invariant 루프 불변속성

파티션의 시간복잡도 : O(n)
worst case : 언밸런스하게 sub array(구간)이 나뉘어 졌을때(0/n-1처럼) (한쪽 루프를 더 깊게(n만큼) 들어가기 때문에) ⇒ n *Θ(n) = Θ(n^2)
best case : 밸런스하게 나뉘어졌을때 n/2, n/2+1 처럼
일반적인 케이스의 계산


비율이 100:0 만 아니면, height가 logn형식으로 나오기때문에
시간복잡도는 O(nlgn)이 된다.
Q&A

5번같이 T(n/2)앞에 2^n이 달려있는 것과 같이 우리에게 친숙하지 않은 형태라면, 양변을 2^n으로 나눠주고 2^-n T(n) 을 다른 새로운 함수 T’(n)으로 치환해서 풀어준다
7번은 다음과 같이 바꿀 수 있음


n이 커질수록 상황을 봐야함 → cos은 -1과 1 사이의 값이므로 작은 상수값으로 치부해도 됌