Kartsuba s Algorithm and Linear Time Selection
|
|
- Godfrey Britton Allison
- 5 years ago
- Views:
Transcription
1 CS 374: Algorithms & Models of Computation, Fall 2015 Kartsuba s Algorithm and Linear Time Selection Lecture 09 September 22, 2015 Chandra & Manoj (UIUC) CS374 1 Fall / 32
2 Part I Fast Multiplication Chandra & Manoj (UIUC) CS374 2 Fall / 32
3 Multiplying Numbers Problem Given two n-digit numbers x and y, compute their product. Grade School Multiplication Compute partial product by multiplying each digit of y with x and adding the partial products Chandra & Manoj (UIUC) CS374 3 Fall / 32
4 Time Analysis of Grade School Multiplication 1 Each partial product: Θ(n) 2 Number of partial products: Θ(n) 3 Addition of partial products: Θ(n 2 ) 4 Total time: Θ(n 2 ) Chandra & Manoj (UIUC) CS374 4 Fall / 32
5 A Trick of Gauss Carl Friedrich Gauss: Prince of Mathematicians Observation: Multiply two complex numbers: (a + bi) and (c + di) (a + bi)(c + di) = ac bd + (ad + bc)i Chandra & Manoj (UIUC) CS374 5 Fall / 32
6 A Trick of Gauss Carl Friedrich Gauss: Prince of Mathematicians Observation: Multiply two complex numbers: (a + bi) and (c + di) (a + bi)(c + di) = ac bd + (ad + bc)i How many multiplications do we need? Chandra & Manoj (UIUC) CS374 5 Fall / 32
7 A Trick of Gauss Carl Friedrich Gauss: Prince of Mathematicians Observation: Multiply two complex numbers: (a + bi) and (c + di) (a + bi)(c + di) = ac bd + (ad + bc)i How many multiplications do we need? Only 3! If we do extra additions and subtractions. Compute ac, bd, (a + b)(c + d). Then (ad + bc) = (a + b)(c + d) ac bd Chandra & Manoj (UIUC) CS374 5 Fall / 32
8 Divide and Conquer Assume n is a power of 2 for simplicity and numbers are in decimal. Split each number into two numbers with equal number of digits 1 x = x n 1 x n 2... x 0 and y = y n 1 y n 2... y 0 2 x = x n 1... x n/ x n/ x 0 3 x L = 10 n/2 x L where x L = x n 1... x n/2 and x R = x n/ x 0 4 Similarly y = 10 n/2 y L + y R where y L = y n 1... y n/2 and y R = y n/ y 0 Chandra & Manoj (UIUC) CS374 6 Fall / 32
9 Example = ( ) ( ) = ( ) Chandra & Manoj (UIUC) CS374 7 Fall / 32
10 Divide and Conquer Assume n is a power of 2 for simplicity and numbers are in decimal. 1 x = x n 1 x n 2... x 0 and y = y n 1 y n 2... y 0 2 x = 10 n/2 x L + x R where x L = x n 1... x n/2 and x R = x n/ x 0 3 y = 10 n/2 y L + y R where y L = y n 1... y n/2 and Therefore y R = y n/ y 0 xy = (10 n/2 x L + x R )(10 n/2 y L + y R ) = 10 n x L y L + 10 n/2 (x L y R + x R y L ) + x R y R Chandra & Manoj (UIUC) CS374 8 Fall / 32
11 Time Analysis xy = (10 n/2 x L + x R )(10 n/2 y L + y R ) = 10 n x L y L + 10 n/2 (x L y R + x R y L ) + x R y R 4 recursive multiplications of number of size n/2 each plus 4 additions and left shifts (adding enough 0 s to the right) Chandra & Manoj (UIUC) CS374 9 Fall / 32
12 Time Analysis xy = (10 n/2 x L + x R )(10 n/2 y L + y R ) = 10 n x L y L + 10 n/2 (x L y R + x R y L ) + x R y R 4 recursive multiplications of number of size n/2 each plus 4 additions and left shifts (adding enough 0 s to the right) T(n) = 4T(n/2) + O(n) T(1) = O(1) Chandra & Manoj (UIUC) CS374 9 Fall / 32
13 Time Analysis xy = (10 n/2 x L + x R )(10 n/2 y L + y R ) = 10 n x L y L + 10 n/2 (x L y R + x R y L ) + x R y R 4 recursive multiplications of number of size n/2 each plus 4 additions and left shifts (adding enough 0 s to the right) T(n) = 4T(n/2) + O(n) T(1) = O(1) T(n) = Θ(n 2 ). No better than grade school multiplication! Chandra & Manoj (UIUC) CS374 9 Fall / 32
14 Time Analysis xy = (10 n/2 x L + x R )(10 n/2 y L + y R ) = 10 n x L y L + 10 n/2 (x L y R + x R y L ) + x R y R 4 recursive multiplications of number of size n/2 each plus 4 additions and left shifts (adding enough 0 s to the right) T(n) = 4T(n/2) + O(n) T(1) = O(1) T(n) = Θ(n 2 ). No better than grade school multiplication! Can we invoke Gauss s trick here? Chandra & Manoj (UIUC) CS374 9 Fall / 32
15 Improving the Running Time xy = (10 n/2 x L + x R )(10 n/2 y L + y R ) = 10 n x L y L + 10 n/2 (x L y R + x R y L ) + x R y R Gauss trick: x L y R + x R y L = (x L + x R )(y L + y R ) x L y L x R y R Chandra & Manoj (UIUC) CS Fall / 32
16 Improving the Running Time xy = (10 n/2 x L + x R )(10 n/2 y L + y R ) = 10 n x L y L + 10 n/2 (x L y R + x R y L ) + x R y R Gauss trick: x L y R + x R y L = (x L + x R )(y L + y R ) x L y L x R y R Recursively compute only x L y L, x R y R, (x L + x R )(y L + y R ). Chandra & Manoj (UIUC) CS Fall / 32
17 Improving the Running Time xy = (10 n/2 x L + x R )(10 n/2 y L + y R ) = 10 n x L y L + 10 n/2 (x L y R + x R y L ) + x R y R Gauss trick: x L y R + x R y L = (x L + x R )(y L + y R ) x L y L x R y R Recursively compute only x L y L, x R y R, (x L + x R )(y L + y R ). Time Analysis Running time is given by T(n) = 3T(n/2) + O(n) T(1) = O(1) which means Chandra & Manoj (UIUC) CS Fall / 32
18 Improving the Running Time xy = (10 n/2 x L + x R )(10 n/2 y L + y R ) = 10 n x L y L + 10 n/2 (x L y R + x R y L ) + x R y R Gauss trick: x L y R + x R y L = (x L + x R )(y L + y R ) x L y L x R y R Recursively compute only x L y L, x R y R, (x L + x R )(y L + y R ). Time Analysis Running time is given by T(n) = 3T(n/2) + O(n) T(1) = O(1) which means T(n) = O(n log 2 3 ) = O(n ) Chandra & Manoj (UIUC) CS Fall / 32
19 State of the Art Schönhage-Strassen 1971: O(n log n log log n) time using Fast-Fourier-Transform (FFT) Martin Fürer 2007: O(n log n2 O(log n) ) time Conjecture There is an O(n log n) time algorithm. Chandra & Manoj (UIUC) CS Fall / 32
20 Analyzing the Recurrences 1 Basic divide and conquer: T(n) = 4T(n/2) + O(n), T(1) = 1. Claim: T(n) = Θ(n 2 ). 2 Saving a multiplication: T(n) = 3T(n/2) + O(n), T(1) = 1. Claim: T(n) = Θ(n 1+log 1.5 ) Chandra & Manoj (UIUC) CS Fall / 32
21 Analyzing the Recurrences 1 Basic divide and conquer: T(n) = 4T(n/2) + O(n), T(1) = 1. Claim: T(n) = Θ(n 2 ). 2 Saving a multiplication: T(n) = 3T(n/2) + O(n), T(1) = 1. Claim: T(n) = Θ(n 1+log 1.5 ) Use recursion tree method: 1 In both cases, depth of recursion L = log n. 2 Work at depth i is 4 i n/2 i and 3 i n/2 i respectively: number of children at depth i times the work at each child 3 Total work is therefore n L i=0 2i and n L i=0 (3/2)i respectively. Chandra & Manoj (UIUC) CS Fall / 32
22 Recursion tree analysis Chandra & Manoj (UIUC) CS Fall / 32
23 Part II Selecting in Unsorted Lists Chandra & Manoj (UIUC) CS Fall / 32
24 Rank of element in an array A: an unsorted array of n integers Definition For 1 j n, element of rank j is the j th smallest element in A. Unsorted array Ranks Sort of array Chandra & Manoj (UIUC) CS Fall / 32
25 Problem - Selection Input Unsorted array A of n integers and integer j Goal Find the jth smallest number in A (rank j number) Median: j = (n + 1)/2 Chandra & Manoj (UIUC) CS Fall / 32
26 Problem - Selection Input Unsorted array A of n integers and integer j Goal Find the jth smallest number in A (rank j number) Median: j = (n + 1)/2 Simplifying assumption for sake of notation: elements of A are distinct Chandra & Manoj (UIUC) CS Fall / 32
27 Algorithm I 1 Sort the elements in A 2 Pick jth element in sorted order Time taken = O(n log n) Chandra & Manoj (UIUC) CS Fall / 32
28 Algorithm I 1 Sort the elements in A 2 Pick jth element in sorted order Time taken = O(n log n) Do we need to sort? Is there an O(n) time algorithm? Chandra & Manoj (UIUC) CS Fall / 32
29 Algorithm II If j is small or n j is small then 1 Find j smallest/largest elements in A in O(jn) time. (How?) 2 Time to find median is O(n 2 ). Chandra & Manoj (UIUC) CS Fall / 32
30 Divide and Conquer Approach 1 Pick a pivot element a from A 2 Partition A based on a. A less = {x A x a} and A greater = {x A x > a} 3 A less = j: return a 4 A less > j: recursively find jth smallest element in A less 5 A less < j: recursively find kth smallest element in A greater where k = j A less. Chandra & Manoj (UIUC) CS Fall / 32
31 Example Chandra & Manoj (UIUC) CS Fall / 32
32 Time Analysis 1 Partitioning step: O(n) time to scan A 2 How do we choose pivot? Recursive running time? Chandra & Manoj (UIUC) CS Fall / 32
33 Time Analysis 1 Partitioning step: O(n) time to scan A 2 How do we choose pivot? Recursive running time? Suppose we always choose pivot to be A[1]. Chandra & Manoj (UIUC) CS Fall / 32
34 Time Analysis 1 Partitioning step: O(n) time to scan A 2 How do we choose pivot? Recursive running time? Suppose we always choose pivot to be A[1]. Say A is sorted in increasing order and j = n. Exercise: show that algorithm takes Ω(n 2 ) time Chandra & Manoj (UIUC) CS Fall / 32
35 A Better Pivot Suppose pivot is the lth smallest element where n/4 l 3n/4. That is pivot is approximately in the middle of A Then n/4 A less 3n/4 and n/4 A greater 3n/4. If we apply recursion, Chandra & Manoj (UIUC) CS Fall / 32
36 A Better Pivot Suppose pivot is the lth smallest element where n/4 l 3n/4. That is pivot is approximately in the middle of A Then n/4 A less 3n/4 and n/4 A greater 3n/4. If we apply recursion, T(n) T(3n/4) + O(n) Implies T(n) = O(n)! Chandra & Manoj (UIUC) CS Fall / 32
37 A Better Pivot Suppose pivot is the lth smallest element where n/4 l 3n/4. That is pivot is approximately in the middle of A Then n/4 A less 3n/4 and n/4 A greater 3n/4. If we apply recursion, T(n) T(3n/4) + O(n) Implies T(n) = O(n)! How do we find such a pivot? Chandra & Manoj (UIUC) CS Fall / 32
38 A Better Pivot Suppose pivot is the lth smallest element where n/4 l 3n/4. That is pivot is approximately in the middle of A Then n/4 A less 3n/4 and n/4 A greater 3n/4. If we apply recursion, T(n) T(3n/4) + O(n) Implies T(n) = O(n)! How do we find such a pivot? Randomly? Chandra & Manoj (UIUC) CS Fall / 32
39 A Better Pivot Suppose pivot is the lth smallest element where n/4 l 3n/4. That is pivot is approximately in the middle of A Then n/4 A less 3n/4 and n/4 A greater 3n/4. If we apply recursion, T(n) T(3n/4) + O(n) Implies T(n) = O(n)! How do we find such a pivot? Randomly? In fact works! Analysis a little bit later. Chandra & Manoj (UIUC) CS Fall / 32
40 A Better Pivot Suppose pivot is the lth smallest element where n/4 l 3n/4. That is pivot is approximately in the middle of A Then n/4 A less 3n/4 and n/4 A greater 3n/4. If we apply recursion, T(n) T(3n/4) + O(n) Implies T(n) = O(n)! How do we find such a pivot? Randomly? In fact works! Analysis a little bit later. Can we choose pivot deterministically? Chandra & Manoj (UIUC) CS Fall / 32
41 Divide and Conquer Approach A game of medians Idea 1 Break input A into many subarrays: L 1,... L k. 2 Find median m i in each subarray L i. 3 Find the median x of the medians m 1,..., m k. 4 Intuition: The median x should be close to being a good median of all the numbers in A. 5 Use x as pivot in previous algorithm. Chandra & Manoj (UIUC) CS Fall / 32
42 Example Chandra & Manoj (UIUC) CS Fall / 32
43 Choosing the pivot A clash of medians 1 Partition array A into n/5 lists of 5 items each. L 1 = {A[1], A[2],..., A[5]}, L 2 = {A[6],..., A[10]},..., L i = {A[5i + 1],..., A[5i 4]},..., L n/5 = {A[5 n/5 4,..., A[n]}. 2 For each i find median b i of L i using brute-force in O(1) time. Total O(n) time 3 Let B = {b 1, b 2,..., b n/5 } 4 Find median b of B Chandra & Manoj (UIUC) CS Fall / 32
44 Choosing the pivot A clash of medians 1 Partition array A into n/5 lists of 5 items each. L 1 = {A[1], A[2],..., A[5]}, L 2 = {A[6],..., A[10]},..., L i = {A[5i + 1],..., A[5i 4]},..., L n/5 = {A[5 n/5 4,..., A[n]}. 2 For each i find median b i of L i using brute-force in O(1) time. Total O(n) time 3 Let B = {b 1, b 2,..., b n/5 } 4 Find median b of B Lemma Median of B is an approximate median of A. That is, if b is used a pivot to partition A, then A less 7n/ and A greater 7n/ Chandra & Manoj (UIUC) CS Fall / 32
45 Algorithm for Selection A storm of medians select(a, j): Form lists L 1, L 2,..., L n/5 where L i = {A[5i 4],..., A[5i]} Find median b i of each L i using brute-force Find median b of B = {b 1, b 2,..., b n/5 } Partition A into A less and A greater using b as pivot if ( A less ) = j return b else if ( A less ) > j) return select(a less, j) else return select(a greater, j A less ) Chandra & Manoj (UIUC) CS Fall / 32
46 Algorithm for Selection A storm of medians select(a, j): Form lists L 1, L 2,..., L n/5 where L i = {A[5i 4],..., A[5i]} Find median b i of each L i using brute-force Find median b of B = {b 1, b 2,..., b n/5 } Partition A into A less and A greater using b as pivot if ( A less ) = j return b else if ( A less ) > j) return select(a less, j) else return select(a greater, j A less ) How do we find median of B? Chandra & Manoj (UIUC) CS Fall / 32
47 Algorithm for Selection A storm of medians select(a, j): Form lists L 1, L 2,..., L n/5 where L i = {A[5i 4],..., A[5i]} Find median b i of each L i using brute-force Find median b of B = {b 1, b 2,..., b n/5 } Partition A into A less and A greater using b as pivot if ( A less ) = j return b else if ( A less ) > j) return select(a less, j) else return select(a greater, j A less ) How do we find median of B? Recursively! Chandra & Manoj (UIUC) CS Fall / 32
48 Algorithm for Selection A storm of medians select(a, j): Form lists L 1, L 2,..., L n/5 where L i = {A[5i 4],..., A[5i]} Find median b i of each L i using brute-force B = [b 1, b 2,..., b n/5 ] b = select(b, n/10 ) Partition A into A less and A greater using b as pivot if ( A less ) = j return b else if ( A less ) > j) return select(a less, j) else return select(a greater, j A less ) Chandra & Manoj (UIUC) CS Fall / 32
49 Running time of deterministic median selection A dance with recurrences T(n) = T( n/5 ) + max{t( A less ), T( A greater ) } + O(n) Chandra & Manoj (UIUC) CS Fall / 32
50 Running time of deterministic median selection A dance with recurrences T(n) = T( n/5 ) + max{t( A less ), T( A greater ) } + O(n) From Lemma, T(n) T( n/5 ) + T( 7n/ ) + O(n) and T(n) = O(1) n < 10 Chandra & Manoj (UIUC) CS Fall / 32
51 Running time of deterministic median selection A dance with recurrences T(n) = T( n/5 ) + max{t( A less ), T( A greater ) } + O(n) From Lemma, T(n) T( n/5 ) + T( 7n/ ) + O(n) and T(n) = O(1) n < 10 Exercise: show that T(n) = O(n) Chandra & Manoj (UIUC) CS Fall / 32
52 Median of Medians: Proof of Lemma Proposition There are at least 3n/10 6 elements greater than the median of medians b. Figure : Shaded elements are all greater than b Chandra & Manoj (UIUC) CS Fall / 32
53 Median of Medians: Proof of Lemma Proposition There are at least 3n/10 6 elements greater than the median of medians b. Figure : Shaded elements are all greater than b Proof. At least half of the n/5 groups have at least 3 elements larger than b, except for last group and the group containing b. Hence number of elements greater than b is: 3( (1/2) n/5 2) 3n/10 6 Chandra & Manoj (UIUC) CS Fall / 32
54 Median of Medians: Proof of Lemma Proposition There are at least 3n/10 6 elements greater than the median of medians b. Corollary A less 7n/ Via symmetric argument, Corollary A greater 7n/ Chandra & Manoj (UIUC) CS Fall / 32
55 Questions to ponder 1 Why did we choose lists of size 5? Will lists of size 3 work? 2 Write a recurrence to analyze the algorithm s running time if we choose a list of size k. Chandra & Manoj (UIUC) CS Fall / 32
56 Median of Medians Algorithm Due to: M. Blum, R. Floyd, D. Knuth, V. Pratt, R. Rivest, and R. Tarjan. Time bounds for selection. Journal of Computer System Sciences (JCSS), Chandra & Manoj (UIUC) CS Fall / 32
57 Median of Medians Algorithm Due to: M. Blum, R. Floyd, D. Knuth, V. Pratt, R. Rivest, and R. Tarjan. Time bounds for selection. Journal of Computer System Sciences (JCSS), How many Turing Award winners in the author list? Chandra & Manoj (UIUC) CS Fall / 32
58 Median of Medians Algorithm Due to: M. Blum, R. Floyd, D. Knuth, V. Pratt, R. Rivest, and R. Tarjan. Time bounds for selection. Journal of Computer System Sciences (JCSS), How many Turing Award winners in the author list? All except Vaughn Pratt! Chandra & Manoj (UIUC) CS Fall / 32
59 Takeaway Points 1 Recursion tree method and guess and verify are the most reliable methods to analyze recursions in algorithms. 2 Recursive algorithms naturally lead to recurrences. 3 Some times one can look for certain type of recursive algorithms (reverse engineering) by understanding recurrences and their behavior. Chandra & Manoj (UIUC) CS Fall / 32
Reductions, Recursion and Divide and Conquer
Chapter 5 Reductions, Recursion and Divide and Conquer CS 473: Fundamental Algorithms, Fall 2011 September 13, 2011 5.1 Reductions and Recursion 5.1.0.1 Reduction Reducing problem A to problem B: (A) Algorithm
More informationb + O(n d ) where a 1, b > 1, then O(n d log n) if a = b d d ) if a < b d O(n log b a ) if a > b d
CS161, Lecture 4 Median, Selection, and the Substitution Method Scribe: Albert Chen and Juliana Cook (2015), Sam Kim (2016), Gregory Valiant (2017) Date: January 23, 2017 1 Introduction Last lecture, we
More informationDivide and Conquer. Maximum/minimum. Median finding. CS125 Lecture 4 Fall 2016
CS125 Lecture 4 Fall 2016 Divide and Conquer We have seen one general paradigm for finding algorithms: the greedy approach. We now consider another general paradigm, known as divide and conquer. We have
More informationCS483 Design and Analysis of Algorithms
CS483 Design and Analysis of Algorithms Chapter 2 Divide and Conquer Algorithms Instructor: Fei Li lifei@cs.gmu.edu with subject: CS483 Office hours: Room 5326, Engineering Building, Thursday 4:30pm -
More information5. DIVIDE AND CONQUER I
5. DIVIDE AND CONQUER I mergesort counting inversions closest pair of points median and selection Lecture slides by Kevin Wayne Copyright 2005 Pearson-Addison Wesley http://www.cs.princeton.edu/~wayne/kleinberg-tardos
More informationLinear Time Selection
Linear Time Selection Given (x,y coordinates of N houses, where should you build road These lecture slides are adapted from CLRS.. Princeton University COS Theory of Algorithms Spring 0 Kevin Wayne Given
More information1 Divide and Conquer (September 3)
The control of a large force is the same principle as the control of a few men: it is merely a question of dividing up their numbers. Sun Zi, The Art of War (c. 400 C.E.), translated by Lionel Giles (1910)
More information5. DIVIDE AND CONQUER I
5. DIVIDE AND CONQUER I mergesort counting inversions closest pair of points randomized quicksort median and selection Lecture slides by Kevin Wayne Copyright 2005 Pearson-Addison Wesley http://www.cs.princeton.edu/~wayne/kleinberg-tardos
More informationCS161: Algorithm Design and Analysis Recitation Section 3 Stanford University Week of 29 January, Problem 3-1.
CS161: Algorithm Design and Analysis Recitation Section 3 Stanford University Week of 29 January, 2018 Problem 3-1. (Quicksort Median-of-3 Partition) One way to improve the randomized quicksort procedure
More informationIntroduction to Divide and Conquer
Introduction to Divide and Conquer Sorting with O(n log n) comparisons and integer multiplication faster than O(n 2 ) Periklis A. Papakonstantinou York University Consider a problem that admits a straightforward
More informationDivide & Conquer. Jordi Cortadella and Jordi Petit Department of Computer Science
Divide & Conquer Jordi Cortadella and Jordi Petit Department of Computer Science Divide-and-conquer algorithms Strategy: Divide the problem into smaller subproblems of the same type of problem Solve the
More informationDivide and Conquer Algorithms. CSE 101: Design and Analysis of Algorithms Lecture 14
Divide and Conquer Algorithms CSE 101: Design and Analysis of Algorithms Lecture 14 CSE 101: Design and analysis of algorithms Divide and conquer algorithms Reading: Sections 2.3 and 2.4 Homework 6 will
More informationCS483 Design and Analysis of Algorithms
CS483 Design and Analysis of Algorithms Lecture 6-8 Divide and Conquer Algorithms Instructor: Fei Li lifei@cs.gmu.edu with subject: CS483 Office hours: STII, Room 443, Friday 4:00pm - 6:00pm or by appointments
More informationDivide & Conquer. Jordi Cortadella and Jordi Petit Department of Computer Science
Divide & Conquer Jordi Cortadella and Jordi Petit Department of Computer Science Divide-and-conquer algorithms Strategy: Divide the problem into smaller subproblems of the same type of problem Solve the
More information5. DIVIDE AND CONQUER I
5. DIVIDE AND CONQUER I mergesort counting inversions randomized quicksort median and selection closest pair of points Lecture slides by Kevin Wayne Copyright 2005 Pearson-Addison Wesley http://www.cs.princeton.edu/~wayne/kleinberg-tardos
More informationIntroduction to Randomized Algorithms: Quick Sort and Quick Selection
Chapter 14 Introduction to Randomized Algorithms: Quick Sort and Quick Selection CS 473: Fundamental Algorithms, Spring 2011 March 10, 2011 14.1 Introduction to Randomized Algorithms 14.2 Introduction
More informationUniversity of the Virgin Islands, St. Thomas January 14, 2015 Algorithms and Programming for High Schoolers. Lecture 5
University of the Virgin Islands, St. Thomas January 14, 2015 Algorithms and Programming for High Schoolers Numerical algorithms: Lecture 5 Today we ll cover algorithms for various numerical problems:
More informationDivide-and-conquer: Order Statistics. Curs: Fall 2017
Divide-and-conquer: Order Statistics Curs: Fall 2017 The divide-and-conquer strategy. 1. Break the problem into smaller subproblems, 2. recursively solve each problem, 3. appropriately combine their answers.
More informationDivide-and-conquer. Curs 2015
Divide-and-conquer Curs 2015 The divide-and-conquer strategy. 1. Break the problem into smaller subproblems, 2. recursively solve each problem, 3. appropriately combine their answers. Known Examples: Binary
More informationDivide-and-Conquer and Recurrence Relations: Notes on Chapter 2, Dasgupta et.al. Howard A. Blair
Divide-and-Conquer and Recurrence Relations: Notes on Chapter 2, Dasgupta et.al. Howard A. Blair 1 Multiplication Example 1.1: Carl Friedrich Gauss (1777-1855): The multiplication of two complex numbers
More informationDivide and conquer. Philip II of Macedon
Divide and conquer Philip II of Macedon Divide and conquer 1) Divide your problem into subproblems 2) Solve the subproblems recursively, that is, run the same algorithm on the subproblems (when the subproblems
More informationCPS 616 DIVIDE-AND-CONQUER 6-1
CPS 616 DIVIDE-AND-CONQUER 6-1 DIVIDE-AND-CONQUER Approach 1. Divide instance of problem into two or more smaller instances 2. Solve smaller instances recursively 3. Obtain solution to original (larger)
More informationCSCI 3110 Assignment 6 Solutions
CSCI 3110 Assignment 6 Solutions December 5, 2012 2.4 (4 pts) Suppose you are choosing between the following three algorithms: 1. Algorithm A solves problems by dividing them into five subproblems of half
More informationCS/COE 1501 cs.pitt.edu/~bill/1501/ Integer Multiplication
CS/COE 1501 cs.pitt.edu/~bill/1501/ Integer Multiplication Integer multiplication Say we have 5 baskets with 8 apples in each How do we determine how many apples we have? Count them all? That would take
More informationPractical Session #3 - Recursions
Practical Session #3 - Recursions Substitution method Guess the form of the solution and prove it by induction Iteration Method Convert the recurrence into a summation and solve it Tightly bound a recurrence
More informationAlgorithms And Programming I. Lecture 5 Quicksort
Algorithms And Programming I Lecture 5 Quicksort Quick Sort Partition set into two using randomly chosen pivot 88 31 25 52 14 98 62 30 23 79 14 31 2530 23 52 88 62 98 79 Quick Sort 14 31 2530 23 52 88
More informationCMPT 307 : Divide-and-Conqer (Study Guide) Should be read in conjunction with the text June 2, 2015
CMPT 307 : Divide-and-Conqer (Study Guide) Should be read in conjunction with the text June 2, 2015 1 Introduction The divide-and-conquer strategy is a general paradigm for algorithm design. This strategy
More informationExtended Algorithms Courses COMP3821/9801
NEW SOUTH WALES Extended Algorithms Courses Aleks Ignjatović School of Computer Science and Engineering University of New South Wales rithms What are we going to do in this class We will do: randomised
More informationCSE 4502/5717: Big Data Analytics
CSE 4502/5717: Big Data Analytics otes by Anthony Hershberger Lecture 4 - January, 31st, 2018 1 Problem of Sorting A known lower bound for sorting is Ω is the input size; M is the core memory size; and
More informationLecture 4. Quicksort
Lecture 4. Quicksort T. H. Cormen, C. E. Leiserson and R. L. Rivest Introduction to Algorithms, 3rd Edition, MIT Press, 2009 Sungkyunkwan University Hyunseung Choo choo@skku.edu Copyright 2000-2018 Networking
More informationRandomized Sorting Algorithms Quick sort can be converted to a randomized algorithm by picking the pivot element randomly. In this case we can show th
CSE 3500 Algorithms and Complexity Fall 2016 Lecture 10: September 29, 2016 Quick sort: Average Run Time In the last lecture we started analyzing the expected run time of quick sort. Let X = k 1, k 2,...,
More informationDivide and Conquer. Arash Rafiey. 27 October, 2016
27 October, 2016 Divide the problem into a number of subproblems Divide the problem into a number of subproblems Conquer the subproblems by solving them recursively or if they are small, there must be
More informationClass Note #14. In this class, we studied an algorithm for integer multiplication, which. 2 ) to θ(n
Class Note #14 Date: 03/01/2006 [Overall Information] In this class, we studied an algorithm for integer multiplication, which improved the running time from θ(n 2 ) to θ(n 1.59 ). We then used some of
More informationDiscrete Mathematics U. Waterloo ECE 103, Spring 2010 Ashwin Nayak May 17, 2010 Recursion
Discrete Mathematics U. Waterloo ECE 103, Spring 2010 Ashwin Nayak May 17, 2010 Recursion During the past week, we learnt about inductive reasoning, in which we broke down a problem of size n, into one
More informationOutline. 1 Introduction. 3 Quicksort. 4 Analysis. 5 References. Idea. 1 Choose an element x and reorder the array as follows:
Outline Computer Science 331 Quicksort Mike Jacobson Department of Computer Science University of Calgary Lecture #28 1 Introduction 2 Randomized 3 Quicksort Deterministic Quicksort Randomized Quicksort
More informationA design paradigm. Divide and conquer: (When) does decomposing a problem into smaller parts help? 09/09/ EECS 3101
A design paradigm Divide and conquer: (When) does decomposing a problem into smaller parts help? 09/09/17 112 Multiplying complex numbers (from Jeff Edmonds slides) INPUT: Two pairs of integers, (a,b),
More informationMA008/MIIZ01 Design and Analysis of Algorithms Lecture Notes 3
MA008 p.1/37 MA008/MIIZ01 Design and Analysis of Algorithms Lecture Notes 3 Dr. Markus Hagenbuchner markus@uow.edu.au. MA008 p.2/37 Exercise 1 (from LN 2) Asymptotic Notation When constants appear in exponents
More informationChapter 5. Divide and Conquer CLRS 4.3. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.
Chapter 5 Divide and Conquer CLRS 4.3 Slides by Kevin Wayne. Copyright 25 Pearson-Addison Wesley. All rights reserved. Divide-and-Conquer Divide-and-conquer. Break up problem into several parts. Solve
More informationData Structures and Algorithms CSE 465
Data Structures and Algorithms CSE 465 LECTURE 8 Analyzing Quick Sort Sofya Raskhodnikova and Adam Smith Reminder: QuickSort Quicksort an n-element array: 1. Divide: Partition the array around a pivot
More informationThe divide-and-conquer strategy solves a problem by: 1. Breaking it into subproblems that are themselves smaller instances of the same type of problem
Chapter 2. Divide-and-conquer algorithms The divide-and-conquer strategy solves a problem by: 1. Breaking it into subproblems that are themselves smaller instances of the same type of problem. 2. Recursively
More informationWeek 5: Quicksort, Lower bound, Greedy
Week 5: Quicksort, Lower bound, Greedy Agenda: Quicksort: Average case Lower bound for sorting Greedy method 1 Week 5: Quicksort Recall Quicksort: The ideas: Pick one key Compare to others: partition into
More informationCSE 591 Homework 3 Sample Solutions. Problem 1
CSE 591 Homework 3 Sample Solutions Problem 1 (a) Let p = max{1, k d}, q = min{n, k + d}, it suffices to find the pth and qth largest element of L and output all elements in the range between these two
More informationAlgorithms Test 1. Question 1. (10 points) for (i = 1; i <= n; i++) { j = 1; while (j < n) {
Question 1. (10 points) for (i = 1; i
More informationData Structures and Algorithms
Data Structures and Algorithms Spring 2017-2018 Outline 1 Sorting Algorithms (contd.) Outline Sorting Algorithms (contd.) 1 Sorting Algorithms (contd.) Analysis of Quicksort Time to sort array of length
More informationQuicksort (CLRS 7) We previously saw how the divide-and-conquer technique can be used to design sorting algorithm Merge-sort
Quicksort (CLRS 7) We previously saw how the divide-and-conquer technique can be used to design sorting algorithm Merge-sort Partition n elements array A into two subarrays of n/2 elements each Sort the
More informationDesign and Analysis of Algorithms
CSE 101, Winter 2018 Design and Analysis of Algorithms Lecture 4: Divide and Conquer (I) Class URL: http://vlsicad.ucsd.edu/courses/cse101-w18/ Divide and Conquer ( DQ ) First paradigm or framework DQ(S)
More informationSelection and Adversary Arguments. COMP 215 Lecture 19
Selection and Adversary Arguments COMP 215 Lecture 19 Selection Problems We want to find the k'th largest entry in an unsorted array. Could be the largest, smallest, median, etc. Ideas for an n lg n algorithm?
More informationDivide and Conquer Strategy
Divide and Conquer Strategy Algorithm design is more an art, less so a science. There are a few useful strategies, but no guarantee to succeed. We will discuss: Divide and Conquer, Greedy, Dynamic Programming.
More informationDivide and Conquer Algorithms
Divide and Conquer Algorithms Antonio Carzaniga Faculty of Informatics University of Lugano October 3, 2007 c 2005, 2006 Antonio Carzaniga 1 Merging Searching Sorting Multiplying Computing the median Outline
More informationDivide and Conquer. Andreas Klappenecker. [based on slides by Prof. Welch]
Divide and Conquer Andreas Klappenecker [based on slides by Prof. Welch] Divide and Conquer Paradigm An important general technique for designing algorithms: divide problem into subproblems recursively
More informationChapter 5 Divide and Conquer
CMPT 705: Design and Analysis of Algorithms Spring 008 Chapter 5 Divide and Conquer Lecturer: Binay Bhattacharya Scribe: Chris Nell 5.1 Introduction Given a problem P with input size n, P (n), we define
More informationDivide and Conquer Algorithms
Divide and Conquer Algorithms Introduction There exist many problems that can be solved using a divide-and-conquer algorithm. A divide-andconquer algorithm A follows these general guidelines. Divide Algorithm
More informationDivide and Conquer. CSE21 Winter 2017, Day 9 (B00), Day 6 (A00) January 30,
Divide and Conquer CSE21 Winter 2017, Day 9 (B00), Day 6 (A00) January 30, 2017 http://vlsicad.ucsd.edu/courses/cse21-w17 Merging sorted lists: WHAT Given two sorted lists a 1 a 2 a 3 a k b 1 b 2 b 3 b
More informationPartition and Select
Divide-Conquer-Glue Algorithms Quicksort, Quickselect and the Master Theorem Quickselect algorithm Tyler Moore CSE 3353, SMU, Dallas, TX Lecture 11 Selection Problem: find the kth smallest number of an
More informationCOMP 382: Reasoning about algorithms
Fall 2014 Unit 4: Basics of complexity analysis Correctness and efficiency So far, we have talked about correctness and termination of algorithms What about efficiency? Running time of an algorithm For
More informationCS Analysis of Recursive Algorithms and Brute Force
CS483-05 Analysis of Recursive Algorithms and Brute Force Instructor: Fei Li Room 443 ST II Office hours: Tue. & Thur. 4:30pm - 5:30pm or by appointments lifei@cs.gmu.edu with subject: CS483 http://www.cs.gmu.edu/
More informationDivide and Conquer. Recurrence Relations
Divide and Conquer Recurrence Relations Divide-and-Conquer Strategy: Break up problem into parts. Solve each part recursively. Combine solutions to sub-problems into overall solution. 2 MergeSort Mergesort.
More informationdata structures and algorithms lecture 2
data structures and algorithms 2018 09 06 lecture 2 recall: insertion sort Algorithm insertionsort(a, n): for j := 2 to n do key := A[j] i := j 1 while i 1 and A[i] > key do A[i + 1] := A[i] i := i 1 A[i
More informationDivide and Conquer: Polynomial Multiplication Version of October 1 / 7, 24201
Divide and Conquer: Polynomial Multiplication Version of October 7, 2014 Divide and Conquer: Polynomial Multiplication Version of October 1 / 7, 24201 Outline Outline: Introduction The polynomial multiplication
More informationHow to Multiply. 5.5 Integer Multiplication. Complex Multiplication. Integer Arithmetic. Complex multiplication. (a + bi) (c + di) = x + yi.
How to ultiply Slides by Kevin Wayne. Copyright 5 Pearson-Addison Wesley. All rights reserved. integers, matrices, and polynomials Complex ultiplication Complex multiplication. a + bi) c + di) = x + yi.
More informationChapter 4 Divide-and-Conquer
Chapter 4 Divide-and-Conquer 1 About this lecture (1) Recall the divide-and-conquer paradigm, which we used for merge sort: Divide the problem into a number of subproblems that are smaller instances of
More informationCopyright 2000, Kevin Wayne 1
Divide-and-Conquer Chapter 5 Divide and Conquer Divide-and-conquer. Break up problem into several parts. Solve each part recursively. Combine solutions to sub-problems into overall solution. Most common
More informationAlgorithms. Quicksort. Slide credit: David Luebke (Virginia)
1 Algorithms Quicksort Slide credit: David Luebke (Virginia) Sorting revisited We have seen algorithms for sorting: INSERTION-SORT, MERGESORT More generally: given a sequence of items Each item has a characteristic
More informationAlgorithms, Design and Analysis. Order of growth. Table 2.1. Big-oh. Asymptotic growth rate. Types of formulas for basic operation count
Types of formulas for basic operation count Exact formula e.g., C(n) = n(n-1)/2 Algorithms, Design and Analysis Big-Oh analysis, Brute Force, Divide and conquer intro Formula indicating order of growth
More informationThe divide-and-conquer strategy solves a problem by: Chapter 2. Divide-and-conquer algorithms. Multiplication
The divide-and-conquer strategy solves a problem by: Chapter 2 Divide-and-conquer algorithms 1 Breaking it into subproblems that are themselves smaller instances of the same type of problem 2 Recursively
More informationDIVIDE AND CONQUER II
DIVIDE AND CONQUER II master theorem integer multiplication matrix multiplication convolution and FFT Lecture slides by Kevin Wayne Copyright 2005 Pearson-Addison Wesley http://www.cs.princeton.edu/~wayne/kleinberg-tardos
More informationIntroduction to Algorithms
Lecture 1 Introduction to Algorithms 1.1 Overview The purpose of this lecture is to give a brief overview of the topic of Algorithms and the kind of thinking it involves: why we focus on the subjects that
More informationMidterm 1 for CS 170
UC Berkeley CS 170 Midterm 1 Lecturer: Satish Rao October 2 Midterm 1 for CS 170 Print your name:, (last) (first) Sign your name: Write your section number (e.g., 101): Write your SID: One page of notes
More informationBucket-Sort. Have seen lower bound of Ω(nlog n) for comparisonbased. Some cheating algorithms achieve O(n), given certain assumptions re input
Bucket-Sort Have seen lower bound of Ω(nlog n) for comparisonbased sorting algs Some cheating algorithms achieve O(n), given certain assumptions re input One example: bucket sort Assumption: input numbers
More informationData selection. Lower complexity bound for sorting
Data selection. Lower complexity bound for sorting Lecturer: Georgy Gimel farb COMPSCI 220 Algorithms and Data Structures 1 / 12 1 Data selection: Quickselect 2 Lower complexity bound for sorting 3 The
More informationDivide and Conquer CPE 349. Theresa Migler-VonDollen
Divide and Conquer CPE 349 Theresa Migler-VonDollen Divide and Conquer Divide and Conquer is a strategy that solves a problem by: 1 Breaking the problem into subproblems that are themselves smaller instances
More informationCMPSCI611: Three Divide-and-Conquer Examples Lecture 2
CMPSCI611: Three Divide-and-Conquer Examples Lecture 2 Last lecture we presented and analyzed Mergesort, a simple divide-and-conquer algorithm. We then stated and proved the Master Theorem, which gives
More informationAlgorithm Design and Analysis
Algorithm Design and Analysis LECTURE 14 Divide and Conquer Fast Fourier Transform Sofya Raskhodnikova 10/7/2016 S. Raskhodnikova; based on slides by K. Wayne. 5.6 Convolution and FFT Fast Fourier Transform:
More informationFast Sorting and Selection. A Lower Bound for Worst Case
Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 0 Fast Sorting and Selection USGS NEIC. Public domain government image. A Lower Bound
More information1 Quick Sort LECTURE 7. OHSU/OGI (Winter 2009) ANALYSIS AND DESIGN OF ALGORITHMS
OHSU/OGI (Winter 2009) CS532 ANALYSIS AND DESIGN OF ALGORITHMS LECTURE 7 1 Quick Sort QuickSort 1 is a classic example of divide and conquer. The hard work is to rearrange the elements of the array A[1..n]
More informationCS 577 Introduction to Algorithms: Strassen s Algorithm and the Master Theorem
CS 577 Introduction to Algorithms: Jin-Yi Cai University of Wisconsin Madison In the last class, we described InsertionSort and showed that its worst-case running time is Θ(n 2 ). Check Figure 2.2 for
More informationData Structures and Algorithms Chapter 3
1 Data Structures and Algorithms Chapter 3 Werner Nutt 2 Acknowledgments The course follows the book Introduction to Algorithms, by Cormen, Leiserson, Rivest and Stein, MIT Press [CLRST]. Many examples
More informationLecture 17: Trees and Merge Sort 10:00 AM, Oct 15, 2018
CS17 Integrated Introduction to Computer Science Klein Contents Lecture 17: Trees and Merge Sort 10:00 AM, Oct 15, 2018 1 Tree definitions 1 2 Analysis of mergesort using a binary tree 1 3 Analysis of
More informationCSE 421 Algorithms. T(n) = at(n/b) + n c. Closest Pair Problem. Divide and Conquer Algorithms. What you really need to know about recurrences
CSE 421 Algorithms Richard Anderson Lecture 13 Divide and Conquer What you really need to know about recurrences Work per level changes geometrically with the level Geometrically increasing (x > 1) The
More informationCSE 421 Algorithms: Divide and Conquer
CSE 42 Algorithms: Divide and Conquer Larry Ruzzo Thanks to Richard Anderson, Paul Beame, Kevin Wayne for some slides Outline: General Idea algorithm design paradigms: divide and conquer Review of Merge
More informationDivide and Conquer. Chapter Overview. 1.2 Divide and Conquer
Chapter 1 Divide and Conquer 1.1 Overview This chapter introduces Divide and Conquer, which is a technique for designing recursive algorithms that are (sometimes) asymptotically efficient. It also presents
More informationCS 161 Summer 2009 Homework #2 Sample Solutions
CS 161 Summer 2009 Homework #2 Sample Solutions Regrade Policy: If you believe an error has been made in the grading of your homework, you may resubmit it for a regrade. If the error consists of more than
More informationAlgorithms and Data Structures 2016 Week 5 solutions (Tues 9th - Fri 12th February)
Algorithms and Data Structures 016 Week 5 solutions (Tues 9th - Fri 1th February) 1. Draw the decision tree (under the assumption of all-distinct inputs) Quicksort for n = 3. answer: (of course you should
More informationDivide-and-Conquer Algorithms Part Two
Divide-and-Conquer Algorithms Part Two Recap from Last Time Divide-and-Conquer Algorithms A divide-and-conquer algorithm is one that works as follows: (Divide) Split the input apart into multiple smaller
More information! Break up problem into several parts. ! Solve each part recursively. ! Combine solutions to sub-problems into overall solution.
Divide-and-Conquer Chapter 5 Divide and Conquer Divide-and-conquer.! Break up problem into several parts.! Solve each part recursively.! Combine solutions to sub-problems into overall solution. Most common
More informationReview Of Topics. Review: Induction
Review Of Topics Asymptotic notation Solving recurrences Sorting algorithms Insertion sort Merge sort Heap sort Quick sort Counting sort Radix sort Medians/order statistics Randomized algorithm Worst-case
More informationOn Partial Sorting. Conrado Martínez. Univ. Politècnica de Catalunya, Spain
Univ. Politècnica de Catalunya, Spain 10th Seminar on the Analysis of Algorithms MSRI, Berkeley, U.S.A. June 2004 1 Introduction 2 3 Introduction Partial sorting: Given an array A of n elements and a value
More informationshelat 16f-4800 sep Matrix Mult, Median, FFT
L5 shelat 16f-4800 sep 23 2016 Matrix Mult, Median, FFT merge-sort (A, p, r) if p
More informationAsymptotic Analysis and Recurrences
Appendix A Asymptotic Analysis and Recurrences A.1 Overview We discuss the notion of asymptotic analysis and introduce O, Ω, Θ, and o notation. We then turn to the topic of recurrences, discussing several
More informationQuick Sort Notes , Spring 2010
Quick Sort Notes 18.310, Spring 2010 0.1 Randomized Median Finding In a previous lecture, we discussed the problem of finding the median of a list of m elements, or more generally the element of rank m.
More informationAdvanced Analysis of Algorithms - Midterm (Solutions)
Advanced Analysis of Algorithms - Midterm (Solutions) K. Subramani LCSEE, West Virginia University, Morgantown, WV {ksmani@csee.wvu.edu} 1 Problems 1. Solve the following recurrence using substitution:
More informationObjec&ves. Review. Divide and conquer algorithms
Objec&ves Divide and conquer algorithms Ø Recurrence rela&ons Ø Coun&ng inversions March 9, 2018 CSCI211 - Sprenkle 1 Review What approach are we learning to solve problems (as of Wednesday)? What is a
More informationAlgorithms, CSE, OSU Quicksort. Instructor: Anastasios Sidiropoulos
6331 - Algorithms, CSE, OSU Quicksort Instructor: Anastasios Sidiropoulos Sorting Given an array of integers A[1... n], rearrange its elements so that A[1] A[2]... A[n]. Quicksort Quicksort(A, p, r) if
More informationCSE 421, Spring 2017, W.L.Ruzzo. 8. Average-Case Analysis of Algorithms + Randomized Algorithms
CSE 421, Spring 2017, W.L.Ruzzo 8. Average-Case Analysis of Algorithms + Randomized Algorithms 1 outline and goals 1) Probability tools you've seen allow formal definition of "average case" running time
More informationDivide and Conquer. Andreas Klappenecker
Divide and Conquer Andreas Klappenecker The Divide and Conquer Paradigm The divide and conquer paradigm is important general technique for designing algorithms. In general, it follows the steps: - divide
More informationCS 231: Algorithmic Problem Solving
CS 231: Algorithmic Problem Solving Naomi Nishimura Module 4 Date of this version: June 11, 2018 WARNING: Drafts of slides are made available prior to lecture for your convenience. After lecture, slides
More informationMatrix Multiplication
Matrix Multiplication Matrix Multiplication Matrix multiplication. Given two n-by-n matrices A and B, compute C = AB. n c ij = a ik b kj k=1 c 11 c 12 c 1n c 21 c 22 c 2n c n1 c n2 c nn = a 11 a 12 a 1n
More informationRange Medians. 1 Introduction. Sariel Har-Peled 1 and S. Muthukrishnan 2
Range Medians Sariel Har-Peled 1 and S. Muthukrishnan 2 1 Department of Computer Science; University of Illinois; 201 N. Goodwin Avenue; Urbana, IL, 61801, USA; sariel@uiuc.edu; http://www.uiuc.edu/~sariel/
More information1 Terminology and setup
15-451/651: Design & Analysis of Algorithms August 31, 2017 Lecture #2 last changed: August 29, 2017 In this lecture, we will examine some simple, concrete models of computation, each with a precise definition
More informationDivide and Conquer algorithms
Divide and Conquer algorithms Another general method for constructing algorithms is given by the Divide and Conquer strategy. We assume that we have a problem with input that can be split into parts in
More information