This is an old revision of the document!


Section 5.1: A First Recurrence: The Mergesort Algorithm

In this chapter, we will be breaking down inputs and solving each part recursively. To compute the running time of algorithms that do this, we solve “recurrence relations”. The mergesort algorithm works by continually dividing the input into two parts and sorting them recursively. For instance, an algorithm may break a sequence of 8 down to two of 4 which are then broken down to 4 pairs of 2 and sorted. Next, the each set of 2s is merged into a group of 4 sorted units. Finally, those are combined to make a sorted list of 8. Clearly, merge sort requires a base case to halt the recursion such as there only being 2 components left in each list. The recurrence relation of merge sort requires at its lowest level approximately n n/n processes. The maximum layers allowed is log(n). Thus, total running time is O(nlog(n)). Generally, we can solve recurrence relations either by unrolling them or guessing a solution and observing if it works or not. To unroll, we observe the layers and look for a pattern. Then, we sum over all layers. We may also use partial substitutions which is too mathematically dense for me to grasp. This section gets a 4/10 because I found it very confusing. I understand the basics but found it hard to achieve a thorough understanding.

courses/cs211/winter2018/journals/mccaffreyk/home/5.1520802101.txt.gz · Last modified: by mccaffreyk
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0