6.006- introduction to - mitcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9....
TRANSCRIPT
![Page 1: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/1.jpg)
6.006- Introduction to Algorithms
Lecture 3
![Page 2: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/2.jpg)
Menu
• Sorting! – Insertion Sort – Merge Sort
• Solving Recurrences
![Page 3: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/3.jpg)
The problem of sorting
Input: array A[1…n] of numbers.
Output: permutation B[1…n] of A such that B[1] ≤ B[2] ≤ … ≤ B[n] .
How can we do it efficiently ?
e.g. A = [7, 2, 5, 5, 9.6] → B = [2, 5, 5, 7, 9.6]
![Page 4: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/4.jpg)
Why Sorting? • Obvious applications
– Organize an MP3 library – Maintain a telephone directory
• Problems that become easy once items are in sorted order – Find a median, or find closest pairs – Binary search, identify statistical outliers
• Non-obvious applications – Data compression: sorting finds duplicates – Computer graphics: rendering scenes front to back
![Page 5: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/5.jpg)
A: 1 n
Insertion sort
INSERTION-SORT (A, n) ⊳ A[1 . . n] for j ← 2 to n
j
key sorted
insert key A[j] into the (already sorted) sub-array A[1 .. j-1].
Illustration of iteration j
i
new location of key
by pairwise key-swaps down to its right position
![Page 6: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/6.jpg)
Example of insertion sort 8 2 4 9 3 6
![Page 7: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/7.jpg)
Example of insertion sort 8 2 4 9 3 6
![Page 8: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/8.jpg)
Example of insertion sort 8 2 4 9 3 6
2 8 4 9 3 6
![Page 9: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/9.jpg)
Example of insertion sort 8 2 4 9 3 6
2 8 4 9 3 6
![Page 10: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/10.jpg)
Example of insertion sort 8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
![Page 11: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/11.jpg)
Example of insertion sort 8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
![Page 12: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/12.jpg)
Example of insertion sort 8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
![Page 13: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/13.jpg)
Example of insertion sort 8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
![Page 14: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/14.jpg)
Example of insertion sort 8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
2 3 4 8 9 6
![Page 15: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/15.jpg)
Example of insertion sort 8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
2 3 4 8 9 6
![Page 16: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/16.jpg)
Example of insertion sort 8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
2 3 4 8 9 6
2 3 4 6 8 9 done Running time? Θ(n2) because Θ(n2) compares and Θ(n2) swaps
e.g. when input is A = [n, n − 1, n − 2, . . . , 2, 1]
![Page 17: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/17.jpg)
Binary Insertion sort
BINARY-INSERTION-SORT (A, n) ⊳ A[1 . . n] for j ← 2 to n
insert key A[j] into the (already sorted) sub-array A[1 .. j-1]. Use binary search to find the right position
Binary search with take Θ(log n) time. However, shifting the elements after insertion will still take Θ(n) time. Complexity: Θ(n log n) comparisons Θ(n2) swaps
![Page 18: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/18.jpg)
Meet Merge Sort
MERGE-SORT A[1 . . n] 1. If n = 1, done (nothing to sort).
Key subroutine: MERGE
divide and conquer 2. Otherwise, recursively sort A[ 1 . . n/2 ]
and A[ n/2+1 . . n ] . 3. “Merge” the two sorted sub-arrays.
![Page 19: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/19.jpg)
20
13
7
2
12
11
9
1
Merging two sorted arrays
![Page 20: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/20.jpg)
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
![Page 21: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/21.jpg)
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
![Page 22: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/22.jpg)
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
![Page 23: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/23.jpg)
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
![Page 24: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/24.jpg)
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
![Page 25: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/25.jpg)
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
![Page 26: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/26.jpg)
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
![Page 27: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/27.jpg)
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
![Page 28: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/28.jpg)
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
11
![Page 29: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/29.jpg)
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
11
20
13
12
![Page 30: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/30.jpg)
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
11
20
13
12
12
![Page 31: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/31.jpg)
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
11
20
13
12
12
Time = Θ(n) to merge a total of n elements (linear time).
![Page 32: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/32.jpg)
Analyzing merge sort
MERGE-SORT A[1 . . n] 1. If n = 1, done. 2. Recursively sort A[ 1 . . ⎡n/2⎤ ]
and A[ ⎡n/2⎤+1 . . n ] . 3. “Merge” the two sorted lists
T(n) Θ(1) 2T(n/2)
Θ(n)
T(n) = Θ(1) if n = 1; 2T(n/2) + Θ(n) if n > 1.
T(n) = ?
![Page 33: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/33.jpg)
Recurrence solving Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
![Page 34: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/34.jpg)
Recursion tree Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
T(n)
![Page 35: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/35.jpg)
Recursion tree Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
T(n/2) T(n/2)
cn
![Page 36: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/36.jpg)
Recursion tree Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
T(n/4) T(n/4) T(n/4) T(n/4)
cn/2 cn/2
![Page 37: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/37.jpg)
Recursion tree Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Θ(1)
![Page 38: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/38.jpg)
Recursion tree Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Θ(1)
h = 1 + lg n
![Page 39: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/39.jpg)
Recursion tree Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Θ(1)
cn
h = 1 + lg n
![Page 40: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/40.jpg)
Recursion tree Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Θ(1)
cn
cn h = 1 + lg n
![Page 41: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/41.jpg)
Recursion tree Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Θ(1)
cn
cn
cn
…
h = 1 + lg n
![Page 42: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/42.jpg)
Recursion tree Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Θ(1)
cn
cn
cn
#leaves = n Θ(n)
…
h = 1 + lg n
![Page 43: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/43.jpg)
Recursion tree Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Θ(1)
cn
cn
cn
#leaves = n Θ(n) Total ?
…
h = 1 + lg n
![Page 44: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/44.jpg)
Recursion tree Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Θ(1)
h = 1 + lg n
cn
cn
cn
#leaves = n Θ(n) Total = Θ(n lg n)
…
Equal amount of work done at each level
![Page 45: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/45.jpg)
Tree for different recurrence Solve T(n) = 2T(n/2) + c, where c > 0 is constant.
c
c c c c
c c
Θ(1)
c
2c
4c
#leaves = n Θ(n) Total = Θ(n)
…
n/2 c
Note that 1 + ½ + ¼ + … < 2 All the work done at the leaves
h = 1 + lg n
![Page 46: 6.006- Introduction to - MITcourses.csail.mit.edu/6.006/fall11/lectures/lecture3.pdf · 2011. 9. 18. · – Organize an MP3 library – Maintain a telephone directory • Problems](https://reader035.vdocuments.us/reader035/viewer/2022071103/5fdcfb9af391216d9750f766/html5/thumbnails/46.jpg)
Tree for yet another recurrence Solve T(n) = 2T(n/2) + cn2, c > 0 is constant.
cn2
cn2/16 cn2/16 cn2/16 cn2/16
cn2/4 cn2/4
Θ(1)
cn2
cn2/2
cn2/4
#leaves = n Θ(n) Total = Θ(n2)
…
Note that 1 + ½ + ¼ + … < 2 All the work done at the root
h = 1 + lg n