Rank Rank of an element is its position in ascending key order.

Slides:



Advertisements
Similar presentations
Algorithms Analysis Lecture 6 Quicksort. Quick Sort Divide and Conquer.
Advertisements

A simple example finding the maximum of a set S of n numbers.
Rank Rank of an element is its position in ascending key order. [2,6,7,8,10,15,18,20,25,30,35,40] rank(2) = 0 rank(15) = 5 rank(20) = 7.
Prune-and-Search Method
1 Today’s Material Medians & Order Statistics – Ch. 9.
Closest Pair Given a set S = {p1, p2,..., pn} of n points in the plane find the two points of S whose distance is the smallest. Images in this presentation.
CS4413 Divide-and-Conquer
Reminder: Closest-Pair Problem Given a collection P of n points in  × , obtain the two points p1 and p2 such that their distance is less or equal that.
Divide And Conquer Distinguish between small and large instances. Small instances solved differently from large ones.
Divide and Conquer. Recall Complexity Analysis – Comparison of algorithm – Big O Simplification From source code – Recursive.
Nattee Niparnan. Recall  Complexity Analysis  Comparison of Two Algos  Big O  Simplification  From source code  Recursive.
Median/Order Statistics Algorithms
CSC 2300 Data Structures & Algorithms March 23, 2007 Chapter 7. Sorting.
CS38 Introduction to Algorithms Lecture 7 April 22, 2014.
CS 206 Introduction to Computer Science II 12 / 09 / 2009 Instructor: Michael Eckmann.
Algorithm Design Strategy Divide and Conquer. More examples of Divide and Conquer  Review of Divide & Conquer Concept  More examples  Finding closest.
The Selection Problem. The selection problem Input: A set S of n elements Output: The k-th smallest element of S The median problem: to find the -th smallest.
Chapter 4 Divide-and-Conquer Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
CS 206 Introduction to Computer Science II 12 / 05 / 2008 Instructor: Michael Eckmann.
Chapter 4: Divide and Conquer The Design and Analysis of Algorithms.
Prune-and-search Strategy
5 - 1 § 5 The Divide-and-Conquer Strategy e.g. find the maximum of a set S of n numbers.
CS 104 Introduction to Computer Science and Graphics Problems Data Structure & Algorithms (3) Recurrence Relation 11/11 ~ 11/14/2008 Yang Song.
Sorting Rearrange n elements into ascending order. 7, 3, 6, 2, 1  1, 2, 3, 6, 7.
Divide and Conquer The most well known algorithm design strategy: 1. Divide instance of problem into two or more smaller instances 2. Solve smaller instances.
CS 206 Introduction to Computer Science II 12 / 08 / 2008 Instructor: Michael Eckmann.
Divide-And-Conquer Sorting Small instance.  n
Nattee Niparnan. Recall  Complexity Analysis  Comparison of Two Algos  Big O  Simplification  From source code  Recursive.
© The McGraw-Hill Companies, Inc., Chapter 6 Prune-and-Search Strategy.
1 Closest Pair of Points (from “Algorithm Design” by J.Kleinberg and E.Tardos) Closest pair. Given n points in the plane, find a pair with smallest Euclidean.
1 Prune-and-Search Method 2012/10/30. A simple example: Binary search sorted sequence : (search 9) step 1  step 2  step 3  Binary search.
Divide and Conquer Applications Sanghyun Park Fall 2002 CSE, POSTECH.
Divide And Conquer A large instance is solved as follows:  Divide the large instance into smaller instances.  Solve the smaller instances somehow. 
CSE 421 Algorithms Lecture 15 Closest Pair, Multiplication.
1 Ch.19 Divide and Conquer. 2 BIRD’S-EYE VIEW Divide and conquer algorithms Decompose a problem instance into several smaller independent instances May.
Divide and Conquer Sorting
Advanced Algorithms Analysis and Design
Chapter 2. Divide-and-conquer Algorithms
Order Statistics Comp 122, Spring 2004.
Rank Rank of an element is its position in ascending key order.
CSC 421: Algorithm Design & Analysis
CSC 421: Algorithm Design & Analysis
Chapter 4 Divide-and-Conquer
Median Finding Algorithm
CSC 421: Algorithm Design & Analysis
Divide-And-Conquer-And-Combine
CSCE350 Algorithms and Data Structure
Jordi Cortadella and Jordi Petit Department of Computer Science
Quicksort 1.
Systems of Linear Equations
Chapter 5 Divide and Conquer
Data Structures Review Session
Topic: Divide and Conquer
Richard Anderson Lecture 13 Divide and Conquer
Divide-And-Conquer-And-Combine
Divide-and-Conquer The most-well known algorithm design strategy:
Quicksort.
CSC 421: Algorithm Design & Analysis
CSE 373 Data Structures and Algorithms
Topic: Divide and Conquer
Order Statistics Comp 122, Spring 2004.
Lecture 15, Winter 2019 Closest Pair, Multiplication
Quicksort.
The Selection Problem.
CSC 421: Algorithm Design & Analysis
Given a list of n  8 integers, what is the runtime bound on the optimal algorithm that sorts the first eight? O(1) O(log n) O(n) O(n log n) O(n2)
Divide and Conquer Merge sort and quick sort Binary search
Chapter 7 : Sorting 교수 : 이상환 강의실 : 113,118호, 324호 연구실 : 과학관 204호
Quicksort.
CMPT 225 Lecture 16 – Heap Sort.
Presentation transcript:

Rank Rank of an element is its position in ascending key order. [2,6,7,8,10,15,18,20,25,30,35,40] rank(2) = 0 rank(15) = 5 rank(20) = 7

Selection Problem Given n unsorted elements, determine the k’th smallest element. That is, determine the element whose rank is k-1. Applications Median score on a test. k = ceil(n/2). Median salary of Computer Scientists. Identify people whose salary is in the bottom 10%. First find salary at the 10% rank.

Selection By Sorting Sort the n elements. Pick up the element with desired rank. O(n log n) time.

D&C Selection Example Find kth element of: a 3 2 8 11 10 1 9 7 a Use 3 as the pivot and partition. 1 2 4 11 9 7 8 3 10 a rank(pivot) = 5. So pivot is the 6’th smallest element.

D&C Selection Example a 1 2 4 11 9 7 8 3 10 a If k = 6 (k-1 = rank(pivot)), pivot is the element we seek. If k < 6 (k-1 < rank(pivot)), find k’th smallest element in left partition. If k > 6 (k-1 > rank(pivot)), find (k-rank(pivot)-1)’th smallest element in right partition.

Time Complexity Worst case arises when the partition to be searched always has all but the pivot. O(n2) Expected performance is O(n). Worst case becomes O(n) when the pivot is chosen carefully. Partition into n/9 groups with 9 elements each (last group may have a few more) Find the median element in each group. pivot is the median of the group medians. This median is found using select recursively.

Closest Pair Of Points Given n points in 2D, find the pair that are closest.

Applications We plan to drill holes in a metal sheet. If the holes are too close, the sheet will tear during drilling. Verify that no two holes are closer than a threshold distance (e.g., holes are at least 1 inch apart).

Air Traffic Control 3D -- Locations of airplanes flying in the neighborhood of a busy airport are known. Want to be sure that no two planes get closer than a given threshold distance.

Simple Solution For each of the n(n-1)/2 pairs of points, determine the distance between the points in the pair. Determine the pair with the minimum distance. O(n2) time.

Divide-And-Conquer Solution When n is small, use simple solution. When n is large Divide the point set into two roughly equal parts A and B. Determine the closest pair of points in A. Determine the closest pair of points in B. Determine the closest pair of points such that one point is in A and the other in B. From the three closest pairs computed, select the one with least distance. Algorithm doesn’t actually find closest pair with 1 point in A and other in B. Rather, it does this only if such a pair is the closest overall pair!

Example A B Divide so that points in A have x-coordinate <= that of points in B.

Example A B Find closest pair in A. Let d1 be the distance between the points in this pair.

Example A B Find closest pair in B. Let d2 be the distance between the points in this pair.

Example A B Let d = min{d1, d2}. Is there a pair with one point in A, the other in B and distance < d?

Candidates lie within d of the dividing line. Example A RA RB B Candidates lie within d of the dividing line. Call these regions RA and RB, respectively.

Example A B Let q be a point in RA. RB B Let q be a point in RA. q need be paired only with those points in RB that are within d of q.y.

Example 2d q d A RA RB B Points that are to be paired with q are in a d x 2d rectangle of RB (comparing region of q). Points in this rectangle are at least d apart.

So the comparing region of q has at most 6 points. Example 2d q d A RA RB B So the comparing region of q has at most 6 points. So number of pairs to check is <= 6| RA | = O(n).

Time Complexity Create a sorted by x-coordinate list of points. O(n log n) time. Create a sorted by y-coordinate list of points. Using these two lists, the required pairs of points from RA and RB can be constructed in O(n) time. Let n < 4 define a small instance.

Time Complexity t(n) = c, n < 4, where c is a constant. Let t(n) be the time to find the closest pair (excluding the time to create the two sorted lists). t(n) = c, n < 4, where c is a constant. When n >= 4, t(n) = t(ceil(n/2)) + t(floor(n/2)) + an, where a is a constant. To solve the recurrence, assume n is a power of 2 and use repeated substitution. t(n) = O(n log n). When you add in the initial sort time for the sort by x and sort by y lists, the overall time remains O(n log n).