SlideShare ist ein Scribd-Unternehmen logo
1 von 18
David Luebke 1 02/10/17
CS 332: Algorithms
Medians and Order Statistics
David Luebke 2 02/10/17
Order Statistics
● The ith order statistic in a set of n elements is
the ith smallest element
● The minimum is thus the 1st order statistic
● The maximum is (duh) the nth order statistic
● The median is the n/2 order statistic
■ If n is even, there are 2 medians
● How can we calculate order statistics?
● What is the running time?
David Luebke 3 02/10/17
Order Statistics
● How many comparisons are needed to find the
minimum element in a set? The maximum?
● Can we find the minimum and maximum with
less than twice the cost?
● Yes:
■ Walk through elements by pairs
○ Compare each element in pair to the other
○ Compare the largest to maximum, smallest to minimum
■ Total cost: 3 comparisons per 2 elements =
O(3n/2)
David Luebke 4 02/10/17
Finding Order Statistics:
The Selection Problem
● A more interesting problem is selection:
finding the ith smallest element of a set
● We will show:
■ A practical randomized algorithm with O(n)
expected running time
■ A cool algorithm of theoretical interest only with
O(n) worst-case running time
David Luebke 5 02/10/17
Randomized Selection
● Key idea: use partition() from quicksort
■ But, only need to examine one subarray
■ This savings shows up in running time: O(n)
● We will again use a slightly different partition
than the book:
q = RandomizedPartition(A, p, r)
≤ A[q] ≥ A[q]
qp r
David Luebke 6 02/10/17
Randomized Selection
RandomizedSelect(A, p, r, i)
if (p == r) then return A[p];
q = RandomizedPartition(A, p, r)
k = q - p + 1;
if (i == k) then return A[q]; // not in book
if (i < k) then
return RandomizedSelect(A, p, q-1, i);
else
return RandomizedSelect(A, q+1, r, i-k);
≤ A[q] ≥ A[q]
k
qp r
David Luebke 7 02/10/17
Randomized Selection
● Analyzing RandomizedSelect()
■ Worst case: partition always 0:n-1
T(n) = T(n-1) + O(n) = ???
= O(n2
) (arithmetic series)
○ No better than sorting!
■ “Best” case: suppose a 9:1 partition
T(n) = T(9n/10) + O(n) = ???
= O(n) (Master Theorem, case 3)
○ Better than sorting!
○ What if this had been a 99:1 split?
David Luebke 8 02/10/17
Randomized Selection
● Average case
■ For upper bound, assume ith element always falls
in larger side of partition:
■ Let’s show that T(n) = O(n) by substitution
( ) ( )( ) ( )
( ) ( )∑
∑
−
=
−
=
Θ+≤
Θ+−−≤
1
2/
1
0
2
1,max
1
n
nk
n
k
nkT
n
nknkT
n
nT
What happened here?
David Luebke 9 02/10/17
What happened here?“Split” the recurrence
What happened here?
What happened here?
What happened here?
Randomized Selection
● Assume T(n) ≤ cn for sufficiently large c:
( )
( )
( )
( ) ( )
( ) ( )n
nc
nc
n
nn
nn
n
c
nkk
n
c
nck
n
nkT
n
nT
n
k
n
k
n
nk
n
nk
Θ+





−−−=
Θ+











−−−=
Θ+





−=
Θ+≤
Θ+≤
∑∑
∑
∑
−
=
−
=
−
=
−
=
1
22
1
2
1
22
1
1
2
12
2
2
)(
2
)(
12
1
1
1
1
2/
1
2/
The recurrence we started with
Substitute T(n) ≤ cn for T(k)
Expand arithmetic series
Multiply it out
David Luebke 10 02/10/17
What happened here?Subtract c/2
What happened here?
What happened here?
What happened here?
Randomized Selection
● Assume T(n) ≤ cn for sufficiently large c:
The recurrence so far
Multiply it out
Rearrange the arithmetic
What we set out to prove
( ) ( )
( )
( )
( )
enough)bigiscif(
24
24
24
1
22
1)(
cn
n
ccn
cn
n
ccn
cn
n
ccn
ccn
n
nc
ncnT
≤






Θ−+−=
Θ+−−=
Θ++−−=
Θ+





−−−≤
David Luebke 11 02/10/17
Worst-Case Linear-Time Selection
● Randomized algorithm works well in practice
● What follows is a worst-case linear time
algorithm, really of theoretical interest only
● Basic idea:
■ Generate a good partitioning element
■ Call this element x
David Luebke 12 02/10/17
Worst-Case Linear-Time Selection
● The algorithm in words:
1. Divide n elements into groups of 5
2. Find median of each group (How? How long?)
3. Use Select() recursively to find median x of the n/5
medians
4. Partition the n elements around x. Let k = rank(x)
5. if (i == k) then return x
if (i < k) then use Select() recursively to find ith smallest
element in first partition
else (i > k) use Select() recursively to find (i-k)th smallest
element in last partition
David Luebke 13 02/10/17
Worst-Case Linear-Time Selection
● (Sketch situation on the board)
● How many of the 5-element medians are ≤ x?
■ At least 1/2 of the medians = n/5 / 2 = n/10
● How many elements are ≤ x?
■ At least 3 n/10  elements
● For large n, 3 n/10  ≥ n/4 (How large?)
● So at least n/4 elements ≤ x
● Similarly: at least n/4 elements ≥ x
David Luebke 14 02/10/17
Worst-Case Linear-Time Selection
● Thus after partitioning around x, step 5 will
call Select() on at most 3n/4 elements
● The recurrence is therefore:
 ( ) ( ) ( )
( ) ( ) ( )
( )( )
enoughbigisif
20
)(2019
)(435
435
435)(
ccn
ncncn
ncn
ncncn
nnTnT
nnTnTnT
≤
Θ−−=
Θ+=
Θ++≤
Θ++≤
Θ++≤
???
???
???
???
???
n/5  ≤ n/5
Substitute T(n) = cn
Combine fractions
Express in desired form
What we set out to prove
David Luebke 15 02/10/17
Worst-Case Linear-Time Selection
● Intuitively:
■ Work at each level is a constant fraction (19/20)
smaller
○ Geometric progression!
■ Thus the O(n) work at the root dominates
David Luebke 16 02/10/17
Linear-Time Median Selection
● Given a “black box” O(n) median algorithm,
what can we do?
■ ith order statistic:
○ Find median x
○ Partition input around x
○ if (i ≤ (n+1)/2) recursively find ith element of first half
○ else find (i - (n+1)/2)th element in second half
○ T(n) = T(n/2) + O(n) = O(n)
■ Can you think of an application to sorting?
David Luebke 17 02/10/17
Linear-Time Median Selection
● Worst-case O(n lg n) quicksort
■ Find median x and partition around it
■ Recursively quicksort two halves
■ T(n) = 2T(n/2) + O(n) = O(n lg n)
David Luebke 18 02/10/17
The End

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Optimal binary search tree dynamic programming
Optimal binary search tree   dynamic programmingOptimal binary search tree   dynamic programming
Optimal binary search tree dynamic programming
 
Time complexity
Time complexityTime complexity
Time complexity
 
Asymptotic Notation
Asymptotic NotationAsymptotic Notation
Asymptotic Notation
 
Dinive conquer algorithm
Dinive conquer algorithmDinive conquer algorithm
Dinive conquer algorithm
 
Algorithm analysis
Algorithm analysisAlgorithm analysis
Algorithm analysis
 
Greedy algorithms
Greedy algorithmsGreedy algorithms
Greedy algorithms
 
Np complete
Np completeNp complete
Np complete
 
0 1 knapsack using branch and bound
0 1 knapsack using branch and bound0 1 knapsack using branch and bound
0 1 knapsack using branch and bound
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Multi dimensional turing machine
Multi dimensional turing machineMulti dimensional turing machine
Multi dimensional turing machine
 
Asymptotic notations
Asymptotic notationsAsymptotic notations
Asymptotic notations
 
Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)
 
Strassen's matrix multiplication
Strassen's matrix multiplicationStrassen's matrix multiplication
Strassen's matrix multiplication
 
K-Means manual work
K-Means manual workK-Means manual work
K-Means manual work
 
Red black tree
Red black treeRed black tree
Red black tree
 
Divide and conquer
Divide and conquerDivide and conquer
Divide and conquer
 
02 order of growth
02 order of growth02 order of growth
02 order of growth
 
Introduction to prolog
Introduction to prologIntroduction to prolog
Introduction to prolog
 
recursion tree method.pdf
recursion tree method.pdfrecursion tree method.pdf
recursion tree method.pdf
 
Recurrences
RecurrencesRecurrences
Recurrences
 

Ähnlich wie Find Median in Linear Time

lecture 10
lecture 10lecture 10
lecture 10sajinsc
 
Divide and conquer
Divide and conquerDivide and conquer
Divide and conquerVikas Sharma
 
1_Asymptotic_Notation_pptx.pptx
1_Asymptotic_Notation_pptx.pptx1_Asymptotic_Notation_pptx.pptx
1_Asymptotic_Notation_pptx.pptxpallavidhade2
 
lecture 11
lecture 11lecture 11
lecture 11sajinsc
 
Quick sort Algorithm Discussion And Analysis
Quick sort Algorithm Discussion And AnalysisQuick sort Algorithm Discussion And Analysis
Quick sort Algorithm Discussion And AnalysisSNJ Chaudhary
 
5.2 divide and conquer
5.2 divide and conquer5.2 divide and conquer
5.2 divide and conquerKrish_ver2
 
Unit-1 DAA_Notes.pdf
Unit-1 DAA_Notes.pdfUnit-1 DAA_Notes.pdf
Unit-1 DAA_Notes.pdfAmayJaiswal4
 
module2_dIVIDEncONQUER_2022.pdf
module2_dIVIDEncONQUER_2022.pdfmodule2_dIVIDEncONQUER_2022.pdf
module2_dIVIDEncONQUER_2022.pdfShiwani Gupta
 
Top school in noida
Top school in noidaTop school in noida
Top school in noidaEdhole.com
 
T2311 - Ch 4_Part1.pptx
T2311 - Ch 4_Part1.pptxT2311 - Ch 4_Part1.pptx
T2311 - Ch 4_Part1.pptxGadaFarhan
 
presentation_mergesortquicksort_1458716068_193111.ppt
presentation_mergesortquicksort_1458716068_193111.pptpresentation_mergesortquicksort_1458716068_193111.ppt
presentation_mergesortquicksort_1458716068_193111.pptajiths82
 
MergesortQuickSort.ppt
MergesortQuickSort.pptMergesortQuickSort.ppt
MergesortQuickSort.pptAliAhmad38278
 
Analysis and design of algorithms part2
Analysis and design of algorithms part2Analysis and design of algorithms part2
Analysis and design of algorithms part2Deepak John
 
pradeepbishtLecture13 div conq
pradeepbishtLecture13 div conqpradeepbishtLecture13 div conq
pradeepbishtLecture13 div conqPradeep Bisht
 
Skiena algorithm 2007 lecture09 linear sorting
Skiena algorithm 2007 lecture09 linear sortingSkiena algorithm 2007 lecture09 linear sorting
Skiena algorithm 2007 lecture09 linear sortingzukun
 

Ähnlich wie Find Median in Linear Time (20)

lecture 10
lecture 10lecture 10
lecture 10
 
Divide and conquer
Divide and conquerDivide and conquer
Divide and conquer
 
1_Asymptotic_Notation_pptx.pptx
1_Asymptotic_Notation_pptx.pptx1_Asymptotic_Notation_pptx.pptx
1_Asymptotic_Notation_pptx.pptx
 
Merge sort and quick sort
Merge sort and quick sortMerge sort and quick sort
Merge sort and quick sort
 
lecture 11
lecture 11lecture 11
lecture 11
 
Quick sort Algorithm Discussion And Analysis
Quick sort Algorithm Discussion And AnalysisQuick sort Algorithm Discussion And Analysis
Quick sort Algorithm Discussion And Analysis
 
5.2 divide and conquer
5.2 divide and conquer5.2 divide and conquer
5.2 divide and conquer
 
03 dc
03 dc03 dc
03 dc
 
Unit-1 DAA_Notes.pdf
Unit-1 DAA_Notes.pdfUnit-1 DAA_Notes.pdf
Unit-1 DAA_Notes.pdf
 
Hash table
Hash tableHash table
Hash table
 
module2_dIVIDEncONQUER_2022.pdf
module2_dIVIDEncONQUER_2022.pdfmodule2_dIVIDEncONQUER_2022.pdf
module2_dIVIDEncONQUER_2022.pdf
 
Top school in noida
Top school in noidaTop school in noida
Top school in noida
 
T2311 - Ch 4_Part1.pptx
T2311 - Ch 4_Part1.pptxT2311 - Ch 4_Part1.pptx
T2311 - Ch 4_Part1.pptx
 
presentation_mergesortquicksort_1458716068_193111.ppt
presentation_mergesortquicksort_1458716068_193111.pptpresentation_mergesortquicksort_1458716068_193111.ppt
presentation_mergesortquicksort_1458716068_193111.ppt
 
MergesortQuickSort.ppt
MergesortQuickSort.pptMergesortQuickSort.ppt
MergesortQuickSort.ppt
 
Analysis and design of algorithms part2
Analysis and design of algorithms part2Analysis and design of algorithms part2
Analysis and design of algorithms part2
 
Randomized algorithms ver 1.0
Randomized algorithms ver 1.0Randomized algorithms ver 1.0
Randomized algorithms ver 1.0
 
pradeepbishtLecture13 div conq
pradeepbishtLecture13 div conqpradeepbishtLecture13 div conq
pradeepbishtLecture13 div conq
 
Merge Sort
Merge SortMerge Sort
Merge Sort
 
Skiena algorithm 2007 lecture09 linear sorting
Skiena algorithm 2007 lecture09 linear sortingSkiena algorithm 2007 lecture09 linear sorting
Skiena algorithm 2007 lecture09 linear sorting
 

Mehr von Rajendran

Element distinctness lower bounds
Element distinctness lower boundsElement distinctness lower bounds
Element distinctness lower boundsRajendran
 
Scheduling with Startup and Holding Costs
Scheduling with Startup and Holding CostsScheduling with Startup and Holding Costs
Scheduling with Startup and Holding CostsRajendran
 
Divide and conquer surfing lower bounds
Divide and conquer  surfing lower boundsDivide and conquer  surfing lower bounds
Divide and conquer surfing lower boundsRajendran
 
Red black tree
Red black treeRed black tree
Red black treeRajendran
 
Proof master theorem
Proof master theoremProof master theorem
Proof master theoremRajendran
 
Recurrence theorem
Recurrence theoremRecurrence theorem
Recurrence theoremRajendran
 
Master method
Master method Master method
Master method Rajendran
 
Master method theorem
Master method theoremMaster method theorem
Master method theoremRajendran
 
Master method theorem
Master method theoremMaster method theorem
Master method theoremRajendran
 
Longest common subsequences in Algorithm Analysis
Longest common subsequences in Algorithm AnalysisLongest common subsequences in Algorithm Analysis
Longest common subsequences in Algorithm AnalysisRajendran
 
Dynamic programming in Algorithm Analysis
Dynamic programming in Algorithm AnalysisDynamic programming in Algorithm Analysis
Dynamic programming in Algorithm AnalysisRajendran
 
Average case Analysis of Quicksort
Average case Analysis of QuicksortAverage case Analysis of Quicksort
Average case Analysis of QuicksortRajendran
 
Np completeness
Np completenessNp completeness
Np completenessRajendran
 
computer languages
computer languagescomputer languages
computer languagesRajendran
 
proving non-computability
proving non-computabilityproving non-computability
proving non-computabilityRajendran
 
the halting_problem
the halting_problemthe halting_problem
the halting_problemRajendran
 
mechanizing reasoning
mechanizing reasoningmechanizing reasoning
mechanizing reasoningRajendran
 

Mehr von Rajendran (20)

Element distinctness lower bounds
Element distinctness lower boundsElement distinctness lower bounds
Element distinctness lower bounds
 
Scheduling with Startup and Holding Costs
Scheduling with Startup and Holding CostsScheduling with Startup and Holding Costs
Scheduling with Startup and Holding Costs
 
Divide and conquer surfing lower bounds
Divide and conquer  surfing lower boundsDivide and conquer  surfing lower bounds
Divide and conquer surfing lower bounds
 
Red black tree
Red black treeRed black tree
Red black tree
 
Proof master theorem
Proof master theoremProof master theorem
Proof master theorem
 
Recurrence theorem
Recurrence theoremRecurrence theorem
Recurrence theorem
 
Master method
Master method Master method
Master method
 
Master method theorem
Master method theoremMaster method theorem
Master method theorem
 
Hash tables
Hash tablesHash tables
Hash tables
 
Lower bound
Lower boundLower bound
Lower bound
 
Master method theorem
Master method theoremMaster method theorem
Master method theorem
 
Longest common subsequences in Algorithm Analysis
Longest common subsequences in Algorithm AnalysisLongest common subsequences in Algorithm Analysis
Longest common subsequences in Algorithm Analysis
 
Dynamic programming in Algorithm Analysis
Dynamic programming in Algorithm AnalysisDynamic programming in Algorithm Analysis
Dynamic programming in Algorithm Analysis
 
Average case Analysis of Quicksort
Average case Analysis of QuicksortAverage case Analysis of Quicksort
Average case Analysis of Quicksort
 
Np completeness
Np completenessNp completeness
Np completeness
 
computer languages
computer languagescomputer languages
computer languages
 
proving non-computability
proving non-computabilityproving non-computability
proving non-computability
 
the halting_problem
the halting_problemthe halting_problem
the halting_problem
 
universality
universalityuniversality
universality
 
mechanizing reasoning
mechanizing reasoningmechanizing reasoning
mechanizing reasoning
 

Kürzlich hochgeladen

Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024Janet Corral
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 

Kürzlich hochgeladen (20)

Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 

Find Median in Linear Time

  • 1. David Luebke 1 02/10/17 CS 332: Algorithms Medians and Order Statistics
  • 2. David Luebke 2 02/10/17 Order Statistics ● The ith order statistic in a set of n elements is the ith smallest element ● The minimum is thus the 1st order statistic ● The maximum is (duh) the nth order statistic ● The median is the n/2 order statistic ■ If n is even, there are 2 medians ● How can we calculate order statistics? ● What is the running time?
  • 3. David Luebke 3 02/10/17 Order Statistics ● How many comparisons are needed to find the minimum element in a set? The maximum? ● Can we find the minimum and maximum with less than twice the cost? ● Yes: ■ Walk through elements by pairs ○ Compare each element in pair to the other ○ Compare the largest to maximum, smallest to minimum ■ Total cost: 3 comparisons per 2 elements = O(3n/2)
  • 4. David Luebke 4 02/10/17 Finding Order Statistics: The Selection Problem ● A more interesting problem is selection: finding the ith smallest element of a set ● We will show: ■ A practical randomized algorithm with O(n) expected running time ■ A cool algorithm of theoretical interest only with O(n) worst-case running time
  • 5. David Luebke 5 02/10/17 Randomized Selection ● Key idea: use partition() from quicksort ■ But, only need to examine one subarray ■ This savings shows up in running time: O(n) ● We will again use a slightly different partition than the book: q = RandomizedPartition(A, p, r) ≤ A[q] ≥ A[q] qp r
  • 6. David Luebke 6 02/10/17 Randomized Selection RandomizedSelect(A, p, r, i) if (p == r) then return A[p]; q = RandomizedPartition(A, p, r) k = q - p + 1; if (i == k) then return A[q]; // not in book if (i < k) then return RandomizedSelect(A, p, q-1, i); else return RandomizedSelect(A, q+1, r, i-k); ≤ A[q] ≥ A[q] k qp r
  • 7. David Luebke 7 02/10/17 Randomized Selection ● Analyzing RandomizedSelect() ■ Worst case: partition always 0:n-1 T(n) = T(n-1) + O(n) = ??? = O(n2 ) (arithmetic series) ○ No better than sorting! ■ “Best” case: suppose a 9:1 partition T(n) = T(9n/10) + O(n) = ??? = O(n) (Master Theorem, case 3) ○ Better than sorting! ○ What if this had been a 99:1 split?
  • 8. David Luebke 8 02/10/17 Randomized Selection ● Average case ■ For upper bound, assume ith element always falls in larger side of partition: ■ Let’s show that T(n) = O(n) by substitution ( ) ( )( ) ( ) ( ) ( )∑ ∑ − = − = Θ+≤ Θ+−−≤ 1 2/ 1 0 2 1,max 1 n nk n k nkT n nknkT n nT What happened here?
  • 9. David Luebke 9 02/10/17 What happened here?“Split” the recurrence What happened here? What happened here? What happened here? Randomized Selection ● Assume T(n) ≤ cn for sufficiently large c: ( ) ( ) ( ) ( ) ( ) ( ) ( )n nc nc n nn nn n c nkk n c nck n nkT n nT n k n k n nk n nk Θ+      −−−= Θ+            −−−= Θ+      −= Θ+≤ Θ+≤ ∑∑ ∑ ∑ − = − = − = − = 1 22 1 2 1 22 1 1 2 12 2 2 )( 2 )( 12 1 1 1 1 2/ 1 2/ The recurrence we started with Substitute T(n) ≤ cn for T(k) Expand arithmetic series Multiply it out
  • 10. David Luebke 10 02/10/17 What happened here?Subtract c/2 What happened here? What happened here? What happened here? Randomized Selection ● Assume T(n) ≤ cn for sufficiently large c: The recurrence so far Multiply it out Rearrange the arithmetic What we set out to prove ( ) ( ) ( ) ( ) ( ) enough)bigiscif( 24 24 24 1 22 1)( cn n ccn cn n ccn cn n ccn ccn n nc ncnT ≤       Θ−+−= Θ+−−= Θ++−−= Θ+      −−−≤
  • 11. David Luebke 11 02/10/17 Worst-Case Linear-Time Selection ● Randomized algorithm works well in practice ● What follows is a worst-case linear time algorithm, really of theoretical interest only ● Basic idea: ■ Generate a good partitioning element ■ Call this element x
  • 12. David Luebke 12 02/10/17 Worst-Case Linear-Time Selection ● The algorithm in words: 1. Divide n elements into groups of 5 2. Find median of each group (How? How long?) 3. Use Select() recursively to find median x of the n/5 medians 4. Partition the n elements around x. Let k = rank(x) 5. if (i == k) then return x if (i < k) then use Select() recursively to find ith smallest element in first partition else (i > k) use Select() recursively to find (i-k)th smallest element in last partition
  • 13. David Luebke 13 02/10/17 Worst-Case Linear-Time Selection ● (Sketch situation on the board) ● How many of the 5-element medians are ≤ x? ■ At least 1/2 of the medians = n/5 / 2 = n/10 ● How many elements are ≤ x? ■ At least 3 n/10  elements ● For large n, 3 n/10  ≥ n/4 (How large?) ● So at least n/4 elements ≤ x ● Similarly: at least n/4 elements ≥ x
  • 14. David Luebke 14 02/10/17 Worst-Case Linear-Time Selection ● Thus after partitioning around x, step 5 will call Select() on at most 3n/4 elements ● The recurrence is therefore:  ( ) ( ) ( ) ( ) ( ) ( ) ( )( ) enoughbigisif 20 )(2019 )(435 435 435)( ccn ncncn ncn ncncn nnTnT nnTnTnT ≤ Θ−−= Θ+= Θ++≤ Θ++≤ Θ++≤ ??? ??? ??? ??? ??? n/5  ≤ n/5 Substitute T(n) = cn Combine fractions Express in desired form What we set out to prove
  • 15. David Luebke 15 02/10/17 Worst-Case Linear-Time Selection ● Intuitively: ■ Work at each level is a constant fraction (19/20) smaller ○ Geometric progression! ■ Thus the O(n) work at the root dominates
  • 16. David Luebke 16 02/10/17 Linear-Time Median Selection ● Given a “black box” O(n) median algorithm, what can we do? ■ ith order statistic: ○ Find median x ○ Partition input around x ○ if (i ≤ (n+1)/2) recursively find ith element of first half ○ else find (i - (n+1)/2)th element in second half ○ T(n) = T(n/2) + O(n) = O(n) ■ Can you think of an application to sorting?
  • 17. David Luebke 17 02/10/17 Linear-Time Median Selection ● Worst-case O(n lg n) quicksort ■ Find median x and partition around it ■ Recursively quicksort two halves ■ T(n) = 2T(n/2) + O(n) = O(n lg n)
  • 18. David Luebke 18 02/10/17 The End