Summarize time complexity of merge sort (#20632)

Add simple way to remember time complexity of merge sort
pull/33888/head
Ha Anh Nguyen 2018-10-31 23:16:56 +02:00 committed by Christopher McCormack
parent 4b581c9cf8
commit 8d0ca1729d
1 changed files with 1 additions and 1 deletions

View File

@ -21,7 +21,7 @@ T(n) = 2T(n/2) + n
= n + n + ... + n + n + n
```
Counting the number of repetitions of n in the sum at the end, we see that there are lg n + 1 of them. Thus the running time is n(lg n + 1) = n lg n + n. We observe that n lg n + n < n lg n + n lg n = 2n lg n for n>0, so the running time is O(n lg n).
Counting the number of repetitions of n in the sum at the end, we see that there are lg n + 1 of them. Thus the running time is n(lg n + 1) = n lg n + n. We observe that n lg n + n < n lg n + n lg n = 2n lg n for n>0, so the running time is O(n lg n). Another simple way to remember the time complexity O(n lg n) of merge sort is that it takes roughly log<sub>2</sub><sup>n</sup> steps to split an array of size n to multiple arrays of size one. After each split, the algorithm have to merge 2 sorted arrays into one which can take n steps in total. As a result, the time complexity for merge sort is O(n lg n).
```Algorithm
MergeSort(arr[], left, right):