The document discusses algorithms for selection in linear time:
1. RandomizedSelect runs in expected O(n) time for finding the ith order statistic.
2. Select guarantees worst-case linear time by using a deterministic partitioning algorithm modified to select the partitioning element.
3. The Select algorithm works by recursively partitioning the array around a median-of-medians until it finds the desired ith element.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
60 views11 pages
373 Lecture 6
The document discusses algorithms for selection in linear time:
1. RandomizedSelect runs in expected O(n) time for finding the ith order statistic.
2. Select guarantees worst-case linear time by using a deterministic partitioning algorithm modified to select the partitioning element.
3. The Select algorithm works by recursively partitioning the array around a median-of-medians until it finds the desired ith element.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 11
CSC 373
Lecture 6 By Javed Siddique Median and Ordered Statistics • The ith order statistic of a set of n elements is the ith smallest element. • Median is a halfway point. Selection in Expected Linear Time
• The algorithm is known as
RandomizedSelect. • It runs in expected Theta(n). Randomized Select Selection in worst case linear time • Like RANDOMIZED-SELECT, the algorithm SELECT finds the desired element by recursively partitioning the input array. • The idea behind the algorithm, however, is to guarantee a good split when the array is partitioned. • SELECT uses the deterministic partitioning algorithm PARTITION from quicksort, modified to take the element to partition around as an input parameter. The Select Algorithm • The SELECT algorithm determines the ith smallest of an input array of n > 1 elements by executing the following steps. • Divide the n elements of the input array into n/5 groups of 5 elements each and at most one group made up of the remaining n mod 5 elements. • Find the median of each of the n/5 groups by first insertion sorting the elements of each group (of which there are at most 5) and then picking the median from the sorted list of group elements. The Select Algorithm 3. Use SELECT recursively to find the median x of the n/5 medians found in step 2. (If there are an even number of medians, then by our convention, x is the lower median.) 4. Partition the input array around the median-of- medians x using the modified version of PARTITION. Let k be one more than the number of elements on the low side of the partition, so that x is the kth smallest element and there are n−k elements on the high side of the partition. The Select Algorithm • 5. If i = k, then return x. Otherwise, use SELECT recursively to find the ith smallest element on the low side if i < k, or the (i − k)th smallest element on the high side if i > k. Runtime Analysis of Select • To analyze the running time of SELECT, we first determine a lower bound on the number of elements that are greater than the partitioning element x. • At least half of the medians found in step 2 are greater than1 the median-of-medians x. • Thus, at least half of the n/5 groups contribute 3 elements that are greater than x, except for the one group that has fewer than 5 elements if 5 does not divide n exactly, and the one group containing x itself. Runtime Analysis Recurrence Relation