Download presentation
Presentation is loading. Please wait.
Published byAntwan Penn Modified over 10 years ago
1
2/9/06CS 3343 Analysis of Algorithms1 Convex Hull Given a set of pins on a pinboard And a rubber band around them How does the rubber band look when it snaps tight? We represent the convex hull as the sequence of points on the convex hull polygon, in counter-clockwise order. 0 2 1 3 4 6 5
2
2/9/06CS 3343 Analysis of Algorithms2 Convex Hull: Divide & Conquer Preprocessing: sort the points by x- coordinate Divide the set of points into two sets A and B: A contains the left n/2 points, B contains the right n/2 points Recursively compute the convex hull of A Recursively compute the convex hull of B Merge the two convex hulls A B
3
2/9/06CS 3343 Analysis of Algorithms3 Convex Hull: Runtime Preprocessing: sort the points by x- coordinate Divide the set of points into two sets A and B: A contains the left n/2 points, B contains the right n/2 points Recursively compute the convex hull of A Recursively compute the convex hull of B Merge the two convex hulls O(n log n) just once O(1) T(n/2) O(n)
4
2/9/06CS 3343 Analysis of Algorithms4 Convex Hull: Runtime Runtime Recurrence: T(n) = 2 T(n/2) + cn Solves to T(n) = (n log n)
5
2/9/06CS 3343 Analysis of Algorithms5 Merging in O(n) time Find upper and lower tangents in O(n) time Compute the convex hull of A B: walk counterclockwise around the convex hull of A, starting with left endpoint of lower tangent when hitting the left endpoint of the upper tangent, cross over to the convex hull of B walk counterclockwise around the convex hull of B when hitting right endpoint of the lower tangent we’re done This takes O(n) time A B 1 2 3 4 5 6 7
6
2/9/06CS 3343 Analysis of Algorithms6 can be checked in constant time right turn or left turn? Finding the lower tangent in O(n) time a = rightmost point of A b = leftmost point of B while T=ab not lower tangent to both convex hulls of A and B do{ while T not lower tangent to convex hull of A do{ a=a-1 } while T not lower tangent to convex hull of B do{ b=b+1 } } A B 0 a=2 1 5 3 4 0 1 2 3 4=b 5 6 7
7
2/9/06CS 3343 Analysis of Algorithms7 Convex Hull: Runtime Preprocessing: sort the points by x- coordinate Divide the set of points into two sets A and B: A contains the left n/2 points, B contains the right n/2 points Recursively compute the convex hull of A Recursively compute the convex hull of B Merge the two convex hulls O(n log n) just once O(1) T(n/2) O(n)
8
2/9/06CS 3343 Analysis of Algorithms8 Convex Hull: Runtime Runtime Recurrence: T(n) = 2 T(n/2) + cn Solves to T(n) = (n log n)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.