Merge Sort는 길이 n의 정렬된 (정수) 배열을 Divide & Conquer 방식으로 정렬한다.
Time Complexity : θ(n^2)
MergeSort Time Complexity
Key instruction으로 time complexity을 찾든 전체 instruction을 다 고려하든 사실 차이가 없다.
key instruction 인덱스의 값들(두 개씩)의 비교다.
Divide 할 떄는 따로 비교가 없지만 Combine을 할때는 비교를 한다.
f(n)= Divide하고 Combine을 하는 데 든 비용이라고 가정하면,
전체 Time Complexity인 T(n)은
T(n)=2*T(n/2)+f(n) 이다. (T(1)은 상수)
Best case 와 worst case는 f(n) 중 while( leftIndex<=mid && rightIndex<=high)에 따라 결정된다.