12. m m+1 j
36 10 12 30 40 44
6 9 1 7
6 9 1 7
MergeSort(arr,start,end)
//if only 1 elemnet
if (start==end) return;
//divide into two equal parts
m=(i+j)/2
mergeSort(arr,start,middle)
mergeSort(arr,middle+1,end)
merge(arr,start,middle,end)
13. MergeSort(arr,start,end)
//if only 1 element
if (start==end) return;
//divide into two equal parts
m=(i+j)/2
mergeSort(arr,start,middle)
mergeSort(arr,middle+1,end)
merge(arr,start,middle,end)
Let us analyse Recursion in Merge Sort
Let us say an array has 8 elements, how many times will MergeSort get called
Start End
0 7
0 3
0 1
0 0
1 1
2 3
2 2
3 3
4 7
4 5
4 4
5 5
6 7
6 6
7 7
If 100 the call would be ? 199