Skip to content

Commit

Permalink
Summarize time complexity of merge sort (freeCodeCamp#20632)
Browse files Browse the repository at this point in the history
Add simple way to remember time complexity of merge sort
  • Loading branch information
anhnguyen1618 authored and matthew-beaty committed Nov 14, 2018
1 parent 46d5106 commit df077e8
Showing 1 changed file with 1 addition and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down

0 comments on commit df077e8

Please sign in to comment.