lecture 7 medians and order statistics - bilkent...
TRANSCRIPT
![Page 1: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/1.jpg)
1
CS473 - Algorithms I
CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Lecture 7 Medians and Order Statistics
View in slide-show mode
![Page 2: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/2.jpg)
2CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Medians and Order Statistics
ith order statistic: ith smallest element of a set of n elements
minimum: first order statisticmaximum: nth order statistic
median: “halfway point” of the set
i = (n+1)/2 or (n+1)/2
![Page 3: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/3.jpg)
3CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Selection Problem
Selection problem: Select the ith smallest of n elements
Naïve algorithm: Sort the input array A; then return A[i]T(n) = Θ(nlgn)using e.g. merge sort (but not quicksort)
Can we do any better?
![Page 4: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/4.jpg)
4CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Selection in Expected Linear Time
Randomized algorithm using divide and conquer
Similar to randomized quicksort Like quicksort: Partitions input array recursively Unlike quicksort: Makes a single recursive call
Reminder: Quicksort makes two recursive calls
Expected runtime: Θ(n)Reminder: Expected runtime of quicksort: Θ(nlgn)
![Page 5: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/5.jpg)
5CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Selection in Expected Linear Time: Example 1
i = 26 10 13 5 8 3 2 11
Select the 2nd smallest element:
Partition the input array:
2 3 5 13 8 10 6 11
make a recursive call toselect the 2nd smallest
element in left subarray
![Page 6: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/6.jpg)
6CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Selection in Expected Linear Time: Example 2
i = 76 10 13 5 8 3 2 11
Select the 7th smallest element:
Partition the input array:
2 3 5 13 8 10 6 11
make a recursive call toselect the 4th smallest
element in right subarray
![Page 7: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/7.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
7
Selection in Expected Linear Time
R-SELECT(A,p,r,i)if p = r then
return A[p]q ← R-PARTITION(A, p, r)k ← q–p+1if i ≤ k then
return R-SELECT(A, p, q, i)else
return R-SELECT(A, q+1, r, i-k)
x = pivot≤ x (k smallest elements) ≥ xp q r
![Page 8: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/8.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
8
Selection in Expected Linear Time
x = pivot
≤ x ≥ xp q r
L R
• All elements in L ≤ all elements in R• L contains |L| = q–p+1 = k smallest elements of A[p...r]
if i ≤ |L| = k thensearch L recursively for its i-th smallest element
else search R recursively for its (i-k)-th smallest element
![Page 9: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/9.jpg)
9CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Runtime Analysis
Worst case:Imbalanced partitioning at every level
and the recursive call always to the larger partition
1 2 3 4 5 6 7 8
recursive call
2 3 4 5 6 7 8
recursive call
i=8
i=7
![Page 10: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/10.jpg)
10CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Runtime Analysis
Worst case:T(n) = T(n-1) + Θ(n)
T(n) = Θ(n2)Worse than the naïve method (based on sorting)
Best case: Balanced partitioning at every recursive levelT(n) = T(n/2) + Θ(n)
T(n) = Θ(n)
Avg case: Expected runtime – need analysis
![Page 11: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/11.jpg)
11CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Reminder: Various Outcomes of H-PARTITION
P(rank(x) = i) = 1/n for 1≤ i ≤ n
if rank(x) = 1 then |L| = 1
if rank(x) > 1 then |L| = rank(x) - 1
x: pivot|L|: size of left region
P(|L| = 1) = P(rank(x) = 1) + P(rank(x) = 2) P(|L| = 1) = 2/n
P(|L| = i) = P(rank(x) = i+1)for 1< i < n
P(|L| = i) = 1/nfor 1< i < n
![Page 12: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/12.jpg)
12CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Average Case Analysis of Randomized Select
To compute the upper bound for the avg case, assume that the ith element always falls into the larger partition.
array Aqp r
left partition right partition
We will analyze the case where the recursive call is alwaysmade to the larger partition
this will give us an upper bound for the avg case
![Page 13: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/13.jpg)
13CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Various Outcomes of H-PARTITION
rank(x) prob. T(n) .
1 1/n ≤ T(max(1, n-1)) + Θ(n)
2 1/n ≤ T(max(1, n-1)) + Θ(n)
3 1/n ≤ T(max(2, n-2)) + Θ(n). . .. . .. . .
i+1 1/n ≤ T(max(i, n-i)) + Θ(n). . .. . .. . .n 1/n ≤ T(max(n-1, 1)) + Θ(n)
1 n-1
1 n-1
2 n-2
i n-i
1n-1
![Page 14: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/14.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
14
Average-Case Analysis of Randomized Select
2/n for i =1
1/n for i = 2,3,... ,n–1Recall: P(|L|=i) =
Upper bound: Assume i-th element always falls into the larger part
T(n) ≤ T(max(1, n–1)) + Σ T(max(q, n–q)) + O(n)
Note: T(max(1, n–1)) = T(n–1) = O(n²) = O(n)
n -1
q = 1
1n
1n
1n
1n
1n... T(n) ≤ 1
nΣ T(max(q, n–q))+O(n)n -1
q = 1
![Page 15: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/15.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
15
Average-Case Analysis of Randomized Select
Σ T(max(q, n–q))+O(n)n-1
q = 1
1n
T(n) ≤...
n is odd: T(k) appears twice for k = n/2 +1, n/2 +2,...,n–1n is even:T( n/2 ) appears once T(k) appears twice fork = n/2 +1, n/2 +2,...,n–1Hence, in both cases:
max(q, n–q) =n–q if q < n/2q if q ≥ n/2
Σ T(max(q, n–q))+O(n) ≤ 2 Σ T(q) + O(n)n-1
q=1
...n-1
q= n/2
T(n) ≤ 2n
Σ T(q)+O(n) n-1
q= n/2
![Page 16: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/16.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
16
Average-Case Analysis of Randomized Select
T(n) ≤ 2n
Σ T(q)+O(n)n -1
q= n/2
By substitution guess T(n) = O(n)Inductive hypothesis: T(k) ≤ ck, k < n
(2/n) Σck + O(n)n-1
k= n/2T(n) ≤
= 2cn
Σk – Σkn -1
k=1
n/2 -1
k=1+ O(n)
2cn
12
n (n-1) – 12
n2
n2
– 1 + O(n)
![Page 17: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/17.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
17
Average-Case Analysis of Randomized Select
T(n) ≤ 2cn
12
n(n-1) – 12
n2
– 1 + O(n)n2
n≤ c(n-1) – c4
+ c2
c2
n –= cn – c4
+ O(n)
+ O(n)
= cn – c4
n + c2
– O(n)
≤ cn since we can choose c large enough so that ( cn/4+c/2 ) dominates O(n)
![Page 18: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/18.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
18
Summary of Randomized Order-Statistic Selection
• Works fast: linear expected time• Excellent algorithm in practise• But, the worst case is very bad: Θ(n²)
Q: Is there an algorithm that runs in linear time in the worst case?A: Yes, due to Blum, Floyd, Pratt, Rivest & Tarjan[1973]Idea: Generate a good pivot recursively..
![Page 19: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/19.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
19
Selection in Worst Case Linear Time
SELECT(S, n, i) return i-th element in set S with n elementsif n ≤ 5 then
SORT S and return the i-th elementDIVIDE S into groups
first n/5 groups are of size 5, last group is of size n mod 5FIND median set M={m , …, m } m : median of j-th group
x ← SELECT(M, , ( n/5 +1)/2)PARTITION set S around the pivot x into L and Rif i ≤ |L| then
return SELECT(L, |L|, i)else
return SELECT(R, n–|L|, i–|L|)
n/5
n/51 j
n/5
![Page 20: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/20.jpg)
20CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Selection in Worst Case Linear Time - Example
Input: Array S and index iOutput: The ith smallest value
S = {25 9 16 8 11 27 39 42 15 6 32 14 36 20 33 22 31 4 17 3 30 412 13 19 7 21 10 34 1 37 23 40 5 29 18 24 12 38 28 26 35 43}
![Page 21: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/21.jpg)
21CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Selection in Worst Case Linear Time - Example
Step 1: Divide the input array into groups of size 5
259
16811
273942156
3214362033
22314
173
30412
1319
72110341
3723405
29
1824123828
263543
![Page 22: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/22.jpg)
22CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Selection in Worst Case Linear Time - Example
Step 2: Compute the median of each group
98111625
156
274239
1420323336
43
173122
213193041
71
103421
523294037
1812242838
263543
Let M be the set of the medians computed: M = {11, 27, 32, 17, 19, 10, 29, 24, 35}
Θ(n)
![Page 23: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/23.jpg)
23CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Selection in Worst Case Linear Time - Example
x SELECT (M, |M|, ) where
98111625
156
274239
1420323336
43
173122
213193041
71
103421
523294037
1812242838
263543
The runtime of the recursive call: T(|M|)
M median = 24
Step 3: Compute the median of the median group M
![Page 24: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/24.jpg)
24CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Selection in Worst Case Linear Time - Example
Step 4: Partition the input array S around the median-of-medians x
S = {25 9 16 8 11 27 39 42 15 6 32 14 36 20 33 22 31 4 17 3 30 412 13 19 7 21 10 34 1 37 23 40 5 29 18 24 12 38 28 26 35 43}
Partition S around x = 24
Claim: Partitioning around x is guaranteed to be well-balanced.
![Page 25: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/25.jpg)
25CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Selection in Worst Case Linear Time - Example
Claim: Partitioning around x=24 is guaranteed to be well-balanced.
213193041
71
103421
43
173122
98111625
1420323336
523294037
156
274239
263543
1812242838
About halfof the mediansgreater than x
about n/10
2 out of 5 in each group greaterthan the median in the group,
which is greater than x
about 2n/10 About 3n/10 eltsgreater than x
![Page 26: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/26.jpg)
26CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Selection in Worst Case Linear Time - Example
Claim: Partitioning around x=24 is guaranteed to be well-balanced.
213193041
71
103421
43
173122
98111625
1420323336
523294037
156
274239
263543
1812242838
About halfof the medians
less than x
about n/10
2 out of 5 in each group less than the median in the group,
which is less than x about 2n/10
About 3n/10 eltsless than x
![Page 27: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/27.jpg)
27CS 473 – Lecture 7 Cevdet Aykanat and Mustafa Ozdal Computer Engineering Department, Bilkent University
Selection in Worst Case Linear Time - Example
Step 5: Make a recursive call to one of the partitions
S = {25 9 16 8 11 27 39 42 15 6 32 14 36 20 33 22 31 4 17 3 30 412 13 19 7 21 10 34 1 37 23 40 5 29 18 24 12 38 28 26 35 43}
Partitioning S around x = 24 will lead to partitionsof sizes ~3n/10 and ~7n/10 in the worst case.
if i ≤ |L| thenreturn SELECT(L, |L|, i)
elsereturn SELECT(R, n–|L|, i–|L|)
![Page 28: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/28.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
28
Selection in Worst Case Linear Time
SELECT(S, n, i) return i-th element in set S with n elementsif n ≤ 5 then
SORT S and return the i-th elementDIVIDE S into groups
first n/5 groups are of size 5, last group is of size n mod 5FIND median set M={m , …, m } m : median of j-th group
x ← SELECT(M, , ( n/5 +1)/2)PARTITION set S around the pivot x into L and Rif i ≤ |L| then
return SELECT(L, |L|, i)else
return SELECT(R, n–|L|, i–|L|)
n/5
n/51 j
n/5
![Page 29: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/29.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
29
Choosing the Pivot
1. Divide S into groups of size 5
![Page 30: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/30.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
30
Choosing the Pivot
lesser
greater
1. Divide S into groups of size 52. Find the median of each group
![Page 31: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/31.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
31
Choosing the Pivot
x
≥ x
1. Divide S into groups of size 52. Find the median of each group3. Recursively select the median x of the medians
x
≥ x
![Page 32: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/32.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
32
Choosing the Pivot
x
x
≥ x≥ x
At least half of the medians ≥ xThus m = n/5 / 2 groups contribute 3 elements to R except possibly the last group andthe group that contains x|R| ≥ 3 m – 2 ≥ – 63n
10
![Page 33: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/33.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
33
Analysis
Similarly|L| ≥ – 6Therefore, SELECT is recursively called on at mostn – – 6 = + 6 elements
3n10
3n10
7n10
x
x
≥ x≥ x
![Page 34: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/34.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
34
Selection in Worst Case Linear Time
SELECT(S, n, i) return i-th element in set S with n elementsif n ≤ 5 then
SORT S and return the i-th elementDIVIDE S into groups
first n/5 groups are of size 5, last group is of size n mod 5FIND median set M={m , …, m } m : median of j-th group
x ← SELECT(M, n/5 , ( n/5 +1)/2)PARTITION set S around the pivot x into L and Rif i ≤ |L| then
return SELECT(L, |L|, i)else
return SELECT(R, n–|L|, i–|L|)
n/5
n/51 j
Θ(n)
7n10T( +6)
n/5T( )Θ(n)
Θ(n)
![Page 35: Lecture 7 Medians and Order Statistics - Bilkent Universitycs.bilkent.edu.tr/.../pdf/07-MediansAndOrderStatistics.pdf · 2017. 9. 16. · CS 473 – Lecture 7 Cevdet Aykanat and Mustafa](https://reader035.vdocument.in/reader035/viewer/2022071101/5fda8cf0007c213013385406/html5/thumbnails/35.jpg)
CS473 – Lecture 7 Cevdet Aykanat - Bilkent University Computer Engineering Department
35
Thus recurrence becomes
T(n) ≤ T + T + 6 + Θ(n)7n10
Inductive step: T(n) ≤ c n/5 + c (7n/10+6) + Θ(n)≤ cn/5 + c + 7cn/10 + 6c + Θ(n)= 9cn/10 + 7c + Θ(n)= cn – [c(n/10 – 7) – Θ(n)] ≤ cn for large c
Work at each level of recursion is a constant factor (9/10) smaller
Selection in Worst Case Linear Time
Guess T(n) = O(n) and prove by induction
n5