1.0 - Recurrences

1.1 - Divide and Conquer Algorithms

1.1.1 - Merge Sort

if p < r                    // If there are two or more elements to merge, we divide:
		q = ⌊(p + r) / 2// Divide
		merge_sort(A, p, q)     // solve sub-problem recursively T(n/2) work
    merge_sort(A, q+1, r)   // solve sub-problem recursively T(n/2) work
    merge(A, p, q, r)       // combine

1.2 - Recurrences

1.1 - Divide and Conquer Algorithms

1.1.1 - Merge Sort

if p < r
		q = ⌊(p + r) / 2// Divide
		merge_sort(A, p, q)     // solve sub-problem recursively
    merge_sort(A, q+1, r)   // solve sub-problem recursively.
    merge(A, p, q, r)       // combine