2.6 ORDER STATISTICS A problem closely related to sorting is that of selecting the kth smallest ele- ment in a sequence of n elements.† One obvious solution is to sort the sequence into nondecreasing order and then locate the kth element. As we have seen, this would require n log n comparisons. By a careful application of the divide-and-conquer strategy, we can find the kth smallest element in O(n) steps. An important special case occurs when k = [n/2], in which case we are finding the median of a sequence in linear time. Algorithm 3.6. Finding the kth smallest element. Input. A sequence S of n elements drawn from a linearly ordered set and an integer k, 1 ≤ k ≤ n. Output. The kth smallest element in S. Method. We use the recursive procedure SELECT in Fig. 3.10. ☐ Let us examine Algorithm 3.6 intuitively to see why it works. The basic idea is to partition the given sequence about some element m into three subsequences S₁, S., S₁ such that S, contains all elements less than m, S, all Strictly speaking, the kth smallest of a sequence a₁. da, is an element b in the sequence such that there are at most k - 1 values for i for which a,

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

I am learning the Algorithm for Order Statistics with the Select Recursive Procedure as shown in the pictures. In the algorithm, we separate out n into separate sequences of 5 elements each or n/5. I was wondering if the same algorithm would work if you did n/6, n/7, or n/10 instead and why. Thank you.

2.6 ORDER STATISTICS
A problem closely related to sorting is that of selecting the kth smallest ele-
ment in a sequence of n elements.† One obvious solution is to sort the
sequence into nondecreasing order and then locate the kth element. As we
have seen, this would require n log n comparisons. By a careful application
of the divide-and-conquer strategy, we can find the kth smallest element in
O(n) steps. An important special case occurs when k = [n/2], in which case
we are finding the median of a sequence in linear time.
Algorithm 3.6. Finding the kth smallest element.
Input. A sequence S of n elements drawn from a linearly ordered set and an
integer k, 1 ≤ k ≤ n.
Output. The kth smallest element in S.
Method. We use the recursive procedure SELECT in Fig. 3.10. ☐
Let us examine Algorithm 3.6 intuitively to see why it works. The basic
idea is to partition the given sequence about some element m into three
subsequences S₁, S., S₁ such that S, contains all elements less than m, S, all
Strictly speaking, the kth smallest of a sequence a₁. da, is an element b in
the sequence such that there are at most k - 1 values for i for which a, <b and at least
k values of i for which a, ≤ b. For example. 4 is the second and third smallest ele-
ment of the sequence 7. 4. 2. 4.
Transcribed Image Text:2.6 ORDER STATISTICS A problem closely related to sorting is that of selecting the kth smallest ele- ment in a sequence of n elements.† One obvious solution is to sort the sequence into nondecreasing order and then locate the kth element. As we have seen, this would require n log n comparisons. By a careful application of the divide-and-conquer strategy, we can find the kth smallest element in O(n) steps. An important special case occurs when k = [n/2], in which case we are finding the median of a sequence in linear time. Algorithm 3.6. Finding the kth smallest element. Input. A sequence S of n elements drawn from a linearly ordered set and an integer k, 1 ≤ k ≤ n. Output. The kth smallest element in S. Method. We use the recursive procedure SELECT in Fig. 3.10. ☐ Let us examine Algorithm 3.6 intuitively to see why it works. The basic idea is to partition the given sequence about some element m into three subsequences S₁, S., S₁ such that S, contains all elements less than m, S, all Strictly speaking, the kth smallest of a sequence a₁. da, is an element b in the sequence such that there are at most k - 1 values for i for which a, <b and at least k values of i for which a, ≤ b. For example. 4 is the second and third smallest ele- ment of the sequence 7. 4. 2. 4.
1.
procedure SELECT(k, S):
if |S| <50 then
begin
sort S:
return kth smallest element in S
2.
3.
end
else
4.
5.
6.
7.
8.
9.
10.
11.
12.
begin
end
divide S into [|S|/5] sequences of 5 elements each
with up to four leftover elements;
sort each 5-element sequence;
let M be the sequence of medians of the 5-element sets;
- SELECT([|M|/21, M);
ጎን ←
let S1, S2, and S3 be the sequences of elements in S less
than, equal to, and greater than m, respectively;
if S₁then return SELECT(k, S₁)
else
if (SS₂ k) then return m
else return SELECT(k − |S₁| – |S2, S3)
Fig. 3.10. Algorithm to select kth smallest element.
0/5 sorted sequences
represented as
columns with smallest
element on top
•
m
Elements known to
be less than
- or equal to m
Elements known to
be greater than
or equal to m
Fig. 3.11 Partitioning of S by Algorithm 3.6.
Sequence M shown
in sorted order
Transcribed Image Text:1. procedure SELECT(k, S): if |S| <50 then begin sort S: return kth smallest element in S 2. 3. end else 4. 5. 6. 7. 8. 9. 10. 11. 12. begin end divide S into [|S|/5] sequences of 5 elements each with up to four leftover elements; sort each 5-element sequence; let M be the sequence of medians of the 5-element sets; - SELECT([|M|/21, M); ጎን ← let S1, S2, and S3 be the sequences of elements in S less than, equal to, and greater than m, respectively; if S₁then return SELECT(k, S₁) else if (SS₂ k) then return m else return SELECT(k − |S₁| – |S2, S3) Fig. 3.10. Algorithm to select kth smallest element. 0/5 sorted sequences represented as columns with smallest element on top • m Elements known to be less than - or equal to m Elements known to be greater than or equal to m Fig. 3.11 Partitioning of S by Algorithm 3.6. Sequence M shown in sorted order
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education