CSCI Honor seminar in algorithms Homework 2 Solution
|
|
- Ambrose Osborne
- 6 years ago
- Views:
Transcription
1 CSCI Honor seminar in algorithms Homework 2 Solution Saad Mneimneh Visiting Professor Hunter College of CUNY Problem 1: Rabin-Karp string matching Consider a binary string s of length n and another one t of length m where m n. We would like to find all occurrences of t in s. Here s a naive pseudocode which requires O(nm) time. for i 0 to n m if s[i, i + m 1] = t[0, m 1] then output i O(n) O(m) Rabin and Karp described a more efficient algorithm. The idea is simple: treat t and s[i, i + m 1] for every i = 0... n m as m-bit integers. Call these τ, σ 0,..., σ n m. We need O(m) time to obtain τ and σ 0 : τ = t 0 + t t t m 1 2 m 1 σ 0 = s 0 + s s s m 1 2 m 1 Then each σ i can be obtained in O(1) from σ i 1 as follows (shifting): σ i = (σ i 1 s i )/2 + s i+m 1 2 m 1 Finally, compare τ to all σ i in O(n) time. The total running time of this algorithm is O(n + m). (a) The analysis above assumes constant time arithmetic operations; however, if m is large, operations on m-bit numbers cannot be assumed to take constant time. The actual Rabin-Karp algorithm computes all above modulo some prime p. This can be considered as a form of hashing. The prime p has to be comparable to n so that arithmetic operations can be assumed to take constant time. Argue why choosing a random prime in [1, mn log mn] is good. Solution: The number of bits required to represent the prime number is Θ(log(mn log mn)) = Θ(log mn+log log mn) = Θ(log mn) = Θ(log m+log n) = Θ(log n). (b) If τ σ i, what is the probability that τ σ i 0 mod p? Hint: τ σ i has O(m) bits and, therefore, cannot have more than m prime factors.
2 Solution: Since τ σ i has at most m prime factors, the probability that τ σ i 0 mod p is at most m π(mn log mn) where π(mn log mn) is the number of primes less or equal to mn log mn. From the prime number theorem, we know that this number is asymptotically mn log mn Θ( log(mn log mn) ) = Θ( mn log mn log mn + log log mn) ) = Θ(mn) Therefore, the probability is O( 1 n ). (c) The Rabin-Karp algorithm is modified to explicitly check s[i, i + m 1] and t[0, m 1] only if τ σ i 0 mod p. What is the expected running time of the Rabin-Karp algorithm in terms of n, m, and v the number of times t occurs in s? Solution: Since the probability of a false positive is O( 1 n ), one can say that this is also the expected number of false positives for position i. By the linearily of expectation, the expected number of false positives is at most n O( 1 n ) = O(1). The expected number of checks is therefore v + O(1). The running time will be O(n + m(v + O(1))) = O(n + mv). Problem 2: Fibonacci revisited Perhaps one of the classical examples used to exhibit recursion for computer scientists is the Fibonacci sequence: { n n 1 F ib(n) = F ib(n 1) + F ib(n 2) n > 1 which leads to a direct recursive implementation; for instance, in C: int fib(int n) { if (n<=1) return n; else return fib(n-1)+fib(n-2); (a) What often fails to be mentioned is that this is a terrible way of computing Fibonacci numbers. Show that the running time of the above algorithm is exponential in n. Hint: F ib(n) = Θ(φ n ), where φ = Solution: The base case is defined for n 1 for which the Fibonacci number is 1. Therefore, the n th Fibonacci number is computed by altimately adding 1 s, which means we have Ω(F ib(n)) additions, i.e. Ω(φ n ) time.
3 A better way of computing Fibonacci numbers is the following, again using C syntax: int fib(int n, int a, int b) { while (n>1) { b=a+b; a=b-a; n=n-1; return b; int fib(int n) { if (n<=1) return n; else return fib(n, 0, 1); (b) Explain in words how this algorithm works, and show that it has a Θ(n 2 ) running time. Hint: we assume here that adding two β-bit numbers takes Θ(β) time. Solution: This algorithm simulates the Fibonacci sequence by keeping the last two values of the sequence, a and b. Initially a = 0 and b = 1. Iteratively, a and b are updated as follows: b becomes a + b, and a becomes b (before the update). After n 1 iterations, b will be F ib(n) by definition of the sequence. The algorithm makes Θ(n) additions. Since F ib(n) = Θ(φ n ), the last addition addition involves adding two Θ(n)-bit numbers (because the numbers are exponential in n). Therefore, the running time is Θ(n) + Θ(n 1) + Θ(n 2) Θ(n 0 ), where n 0 is large enough constant. Therefore, we have Θ(n 2 ). (c) In this part of the problem, you are asked to break the Θ(n 2 ) bound to obtain yet a faster way of computing Fibonacci numbers. Consider the following matrix [ ] 0 1 F = 1 1 and its powers F, F 2, F 3... Again assume that adding two β-bit numbers takes Θ(β) time. Solution: It can be easily seen that F11 n is the n th Fibonacci number. We can multiply two 2x2 matrices in Θ(β 1.59 ) time where β is the number of bits, because we need 8 multiplications and 4 additions. We can use the divide-andconquer approach for multiplying two β-bit numbers. Now F n requires only Θ(log n) matrix multiplications using repeated squaring. Therefore, our running time is O(n 1.59 log n) because our Fibonacci numbers have eventually O(n) bits. This is already better than Θ(n 2 ) because n 1.59 log n = o(n 2 ). A more careful analysis, however, will show that the running time is actually Θ(n 1.59 ). With repeated squaring, the number of bits doubles each time. Therefore, our running time is actually Θ(n 1.59 )+Θ(( n 2 )1.59 )+Θ(( n 4 )1.59 )+.... This is Θ(n 1.59 ) because the geometric series converges to a constant. This analysis is not perfectly accurate because repeated squaring guarantees that the number of bits
4 doubles at least every other step, but this can only double the amount of work. For the purpose of Θ notation, this is correct. Problem 3: Practice recurrences This is just to get more familiar with the Master method, do not hand in. Use the master method to solve asymptotic bounds for the following recurrences: (a) Merge sort: T (n) = 2T (n/2) + Θ(n) (b) n-bit multiplication: T (n) = 3T (n/2) + Θ(n) (c) Strassen: T (n) = 7T (n/2) + Θ(n 2 ) (d) Binary search: T (n) = T (n/2) + Θ(1) (e) T (n) = 4T (n/2) + Θ(n 3 ) Problem 4: Made up example Can the master method be applied to the recurrence T (n) = 4T (n/2)+n 2 / log n? Why or why not? Give an asymptotic bound for this recurrence. Solution: Let s compare g(n) = n 2 / log n to n log b a = n 2. n 2 / log n n 2 = 1/ log n = O(n ɛ ), Θ(log k n), Ω(n ɛ ), ɛ > 0? i.e. log n = Ω(n ɛ )? No k 0? No ɛ > 0? No Therefore, no case applies. The Bazzi methods solves that. First we solve for p, ab p = p = 1 p = 2. Then we solve the integral: n u 2 / log u n 1 c u 3 du = c u log u du Let s make the change of variable v = log u, dv = du/u. log n log c Therefore, the answer is Θ(n 2 log log n). Problem 5: The missing integer dv v = log v log n = Θ(log log n) log c In the spirit of bits and divide-and-conquer, so I will make it optional Assume we are given an array a[1... n] containing all the integers from 0 to n except one of them. We are asked to find the missing integer. The only type of operation allowed on a is to fetch the j th bit of the i th integer a[i]. Design an algorithm to find the missing integer in Θ(n) time. Hint: try to discover the missing integer bit by bit and think about a way to yield the recurrence T (n) = T (n/2) + Θ(n).
5 Solution: The idea is to discover the missing integer bit by bit. We maintain a list of candidates, originally C = {0, 1, 2,..., n, and a list of indices of a, originally I = {1, 2,... n. Assume all integers are represented using k bits and consider the last bit, bit k. We compute how many 0 s and 1 s we have for that bit in a[i] for i I, and how many 0 s and 1 s we have for that bit in the list of candidates C. The missing integer will result in a missing 0 or a missing 1. This will help us shorten the lists C and I for another round. For instance, if a 0 bit is missing, all integers ending with 1 are not candidates for the missing integer anymore. We remove those from both lists and replace every element e remaining in C with e/2 (integer division), and update k to k 1. All operations on the lists can be done in linear time, including the removal of elements (one could simply copy the remaining elements into a new list). This is repeated until the list of candidates has only one element, the missing integer. Note that in each time, the lists of candidates and indices are almost halved in size, leading to the recurrence: T (n) = T (n/2) + Θ(n) Therefore, we find the missing integer in Θ(n) + Θ(n/2) + Θ(n/4) +... = Θ(n) time. missing-integer(c, I, k) if C = 1 then return the singleton element of C if e C e mod 2 > i I a[i][k] (bit 1 is missing) then b = 0 else b = 1 C = C {e : e mod 2 = b I = I {i : a[i][k] = b missing-integer({e/2 : e C, I, k 1) Problem 6: Modular FFT The DFT requires the use of complex numbers, which can result in a loss of precision due to round-off errors. Bounding the propagation of error can be tricky; an alternative is to utilize a variant of FFT based on modular arithmetic. (a) Instead of 1, w = e i2π/n, w 2,..., w n 1 consider the following integers modulo 2 tn/2 + 1: 1, w = 2 t, w 2,..., w n 1 where t is an arbitrary positive integer. Show that these are the n th roots of 1 modulo 2 tn/2 + 1, i.e. ( 2 it ) n 1 mod 2 tn/2 + 1 for i = 0... n 1 and they are distinct. Furthermore, describe the FFT and its inverse based on these roots. Solution: w n = 2 tn = (2 tn/2 1)(2 tn/2 + 1) + 1 = k(2 tn/2 + 1) + 1
6 Therefore, w is an n th root of 1. The same is true for w k, k = 0,... n 1, because (w k ) n = (w n ) k. They wrap around because w i+n = w i w n w i mod 2 tn/ To show they are distinct assume w i w j mod 2 tn/2 + 1, i > j, and i j < n. Then w j (w i j 1) 0 mod 2 tn/ This means w j (w i j 1) is a multiple of 2 tn/2 + 1, but since w j and 2 tn/2 + 1 are relatively prime (one is a power of 2 and the other is odd), then (w i j 1) = 2 t(i j) 1 = t(i j) 1 must be a multiple of 2 tn/ Therefore, we need an integer k such that when added to itself shifted left by n/2 bits (i.e. multiplied by 2 tn/2 + 1), we get a pattern of all 1 s. The smallest such k 0 is 2 n/2 1, which means the smallest i j 0 is n, a contradiction. FFT and inverse FFT work the same way, where w 1 = w n 1 = 2 t(n 1) (all modulo 2 tn/ (b) Let k be such that p = kn + 1 is prime. Argue intuitively using the prime number theorem that k = O(log n). Solution: We are considering odd numbers n + 1, 2n + 1, 3n + 1,..., i.e. we are jumping by n. Therefore, we are exploring 1/n of the odd numbers in a given interval. Since a prime number must be odd, we expect to find one this way if we have about n of them. By the prime number theorem, n log n log(n log n) n (c) Consider the set {1, 2,..., p 1. Because p is prime, this is a multiplicative group. Furthermore, the group is cyclic, i.e. there exists a g such that g 0, g 1, g 2,... g p 2 are all distinct modulo p (that s why g is called a generator of the group, it generates all the elements). Consider the sequence (k from part (b) above): 1, w = g k mod p, w 2,..., w n 1 Show that these are the n th roots of 1 modulo p and describe the FFT and its inverse in terms of them. Remark: the advantage of this scheme over the one described in part (a) is that the roots in part (a) require O(n) bits because they are integers < 2 tn/2 + 1, but the roots here require O(log n) bits because they are integers < p. Solution: w n = (g k ) n = g nk = g p 1. By Fermat s theorem, since g {1, 2,..., p 1 and p is prime, g p 1 1 mod p. Note that 1, g k, (g 2 ) k, (g 3 ) k,..., (g n 1 ) k modulo p are distinct because n 1 p 2. FFT and inverse FFT work in the same way, where w 1 = w n 1 = g kn k = g p 1 k (all modulo p).
Quiz 1 Solutions. Problem 2. Asymptotics & Recurrences [20 points] (3 parts)
Introduction to Algorithms October 13, 2010 Massachusetts Institute of Technology 6.006 Fall 2010 Professors Konstantinos Daskalakis and Patrick Jaillet Quiz 1 Solutions Quiz 1 Solutions Problem 1. We
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 Exercise 1 solution. Question 1. Let s start by writing all the functions in big O notation:
Data structures Exercise 1 solution Question 1 Let s start by writing all the functions in big O notation: f 1 (n) = 2017 = O(1), f 2 (n) = 2 log 2 n = O(n 2 ), f 3 (n) = 2 n = O(2 n ), f 4 (n) = 1 = O
More informationComputational Complexity - Pseudocode and Recursions
Computational Complexity - Pseudocode and Recursions Nicholas Mainardi 1 Dipartimento di Elettronica e Informazione Politecnico di Milano nicholas.mainardi@polimi.it June 6, 2018 1 Partly Based on Alessandro
More information1 Substitution method
Recurrence Relations we have discussed asymptotic analysis of algorithms and various properties associated with asymptotic notation. As many algorithms are recursive in nature, it is natural to analyze
More informationChapter 7 Randomization Algorithm Theory WS 2017/18 Fabian Kuhn
Chapter 7 Randomization Algorithm Theory WS 2017/18 Fabian Kuhn Randomization Randomized Algorithm: An algorithm that uses (or can use) random coin flips in order to make decisions We will see: randomization
More informationHomework 1 Submission
Homework Submission Sample Solution; Due Date: Thursday, May 4, :59 pm Directions: Your solutions should be typed and submitted as a single pdf on Gradescope by the due date. L A TEX is preferred but not
More informationModule 1: Analyzing the Efficiency of Algorithms
Module 1: Analyzing the Efficiency of Algorithms Dr. Natarajan Meghanathan Professor of Computer Science Jackson State University Jackson, MS 39217 E-mail: natarajan.meghanathan@jsums.edu What is an Algorithm?
More informationAlgorithm efficiency analysis
Algorithm efficiency analysis Mădălina Răschip, Cristian Gaţu Faculty of Computer Science Alexandru Ioan Cuza University of Iaşi, Romania DS 2017/2018 Content Algorithm efficiency analysis Recursive function
More informationAlgorithms and Theory of Computation. Lecture 9: Dynamic Programming
Algorithms and Theory of Computation Lecture 9: Dynamic Programming Xiaohui Bei MAS 714 September 10, 2018 Nanyang Technological University MAS 714 September 10, 2018 1 / 21 Recursion in Algorithm Design
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 informationSolving recurrences. Frequently showing up when analysing divide&conquer algorithms or, more generally, recursive algorithms.
Solving recurrences Frequently showing up when analysing divide&conquer algorithms or, more generally, recursive algorithms Example: Merge-Sort(A, p, r) 1: if p < r then 2: q (p + r)/2 3: Merge-Sort(A,
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 informationLecture 2. Fundamentals of the Analysis of Algorithm Efficiency
Lecture 2 Fundamentals of the Analysis of Algorithm Efficiency 1 Lecture Contents 1. Analysis Framework 2. Asymptotic Notations and Basic Efficiency Classes 3. Mathematical Analysis of Nonrecursive Algorithms
More informationFast Convolution; Strassen s Method
Fast Convolution; Strassen s Method 1 Fast Convolution reduction to subquadratic time polynomial evaluation at complex roots of unity interpolation via evaluation at complex roots of unity 2 The Master
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 informationCS325: Analysis of Algorithms, Fall Midterm
CS325: Analysis of Algorithms, Fall 2017 Midterm I don t know policy: you may write I don t know and nothing else to answer a question and receive 25 percent of the total points for that problem whereas
More informationChapter 6 Randomization Algorithm Theory WS 2012/13 Fabian Kuhn
Chapter 6 Randomization Algorithm Theory WS 2012/13 Fabian Kuhn Randomization Randomized Algorithm: An algorithm that uses (or can use) random coin flips in order to make decisions We will see: randomization
More informationDivide-and-Conquer. Reading: CLRS Sections 2.3, 4.1, 4.2, 4.3, 28.2, CSE 6331 Algorithms Steve Lai
Divide-and-Conquer Reading: CLRS Sections 2.3, 4.1, 4.2, 4.3, 28.2, 33.4. CSE 6331 Algorithms Steve Lai Divide and Conquer Given an instance x of a prolem, the method works as follows: divide-and-conquer
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 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 informationCOMP Analysis of Algorithms & Data Structures
COMP 3170 - Analysis of Algorithms & Data Structures Shahin Kamali Lecture 4 - Jan. 10, 2018 CLRS 1.1, 1.2, 2.2, 3.1, 4.3, 4.5 University of Manitoba Picture is from the cover of the textbook CLRS. 1 /
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 informationINDIAN INSTITUTE OF TECHNOLOGY KHARAGPUR Design and Analysis of Algorithms Department of Mathematics MA21007/Assignment-2/Due: 18 Aug.
INDIAN INSTITUTE OF TECHNOLOGY KHARAGPUR Design and Analysis of Algorithms Department of Mathematics MA21007/Assignment-2/Due: 18 Aug. 2015 Problem 1. Computing Fibonacci Numbers The Fibonacci numbers
More informationi=1 i B[i] B[i] + A[i, j]; c n for j n downto i + 1 do c n i=1 (n i) C[i] C[i] + A[i, j]; c n
Fundamental Algorithms Homework #1 Set on June 25, 2009 Due on July 2, 2009 Problem 1. [15 pts] Analyze the worst-case time complexity of the following algorithms,and give tight bounds using the Theta
More informationIntroduction to Algorithms 6.046J/18.401J/SMA5503
Introduction to Algorithms 6.046J/8.40J/SMA5503 Lecture 3 Prof. Piotr Indyk The divide-and-conquer design paradigm. Divide the problem (instance) into subproblems. 2. Conquer the subproblems by solving
More informationTricks of the Trade in Combinatorics and Arithmetic
Tricks of the Trade in Combinatorics and Arithmetic Zachary Friggstad Programming Club Meeting Fast Exponentiation Given integers a, b with b 0, compute a b exactly. Fast Exponentiation Given integers
More informationAnalysis of Algorithms I: Asymptotic Notation, Induction, and MergeSort
Analysis of Algorithms I: Asymptotic Notation, Induction, and MergeSort Xi Chen Columbia University We continue with two more asymptotic notation: o( ) and ω( ). Let f (n) and g(n) are functions that map
More informationCOMP Analysis of Algorithms & Data Structures
COMP 3170 - Analysis of Algorithms & Data Structures Shahin Kamali Lecture 4 - Jan. 14, 2019 CLRS 1.1, 1.2, 2.2, 3.1, 4.3, 4.5 University of Manitoba Picture is from the cover of the textbook CLRS. COMP
More informationGrade 11/12 Math Circles Fall Nov. 5 Recurrences, Part 2
1 Faculty of Mathematics Waterloo, Ontario Centre for Education in Mathematics and Computing Grade 11/12 Math Circles Fall 2014 - Nov. 5 Recurrences, Part 2 Running time of algorithms In computer science,
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 informationCS2223 Algorithms D Term 2009 Exam 3 Solutions
CS2223 Algorithms D Term 2009 Exam 3 Solutions May 4, 2009 By Prof. Carolina Ruiz Dept. of Computer Science WPI PROBLEM 1: Asymptoptic Growth Rates (10 points) Let A and B be two algorithms with runtimes
More informationCpt S 223. School of EECS, WSU
Algorithm Analysis 1 Purpose Why bother analyzing code; isn t getting it to work enough? Estimate time and memory in the average case and worst case Identify bottlenecks, i.e., where to reduce time Compare
More informationBig , and Definition Definition
Big O, Ω, and Θ Big-O gives us only a one-way comparison; if f is O(g) then g eventually is bigger than f from that point on, but in fact f could be very small in comparison. Example; 3n is O(2 2n ). We
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 informationCS383, Algorithms Spring 2009 HW1 Solutions
Prof. Sergio A. Alvarez http://www.cs.bc.edu/ alvarez/ 21 Campanella Way, room 569 alvarez@cs.bc.edu Computer Science Department voice: (617) 552-4333 Boston College fax: (617) 552-6790 Chestnut Hill,
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 informationSolving Recurrences. 1. Express the running time (or use of some other resource) as a recurrence.
Solving Recurrences Recurrences and Recursive Code Many (perhaps most) recursive algorithms fall into one of two categories: tail recursion and divide-andconquer recursion. We would like to develop some
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 informationModule 1: Analyzing the Efficiency of Algorithms
Module 1: Analyzing the Efficiency of Algorithms Dr. Natarajan Meghanathan Associate Professor of Computer Science Jackson State University Jackson, MS 39217 E-mail: natarajan.meghanathan@jsums.edu Based
More informationSpace Complexity of Algorithms
Space Complexity of Algorithms So far we have considered only the time necessary for a computation Sometimes the size of the memory necessary for the computation is more critical. The amount of memory
More informationLecture 7: More Arithmetic and Fun With Primes
IAS/PCMI Summer Session 2000 Clay Mathematics Undergraduate Program Advanced Course on Computational Complexity Lecture 7: More Arithmetic and Fun With Primes David Mix Barrington and Alexis Maciel July
More informationCS 4407 Algorithms Lecture 2: Iterative and Divide and Conquer Algorithms
CS 4407 Algorithms Lecture 2: Iterative and Divide and Conquer Algorithms Prof. Gregory Provan Department of Computer Science University College Cork 1 Lecture Outline CS 4407, Algorithms Growth Functions
More informationMid-term Exam Answers and Final Exam Study Guide CIS 675 Summer 2010
Mid-term Exam Answers and Final Exam Study Guide CIS 675 Summer 2010 Midterm Problem 1: Recall that for two functions g : N N + and h : N N +, h = Θ(g) iff for some positive integer N and positive real
More informationCS173 Running Time and Big-O. Tandy Warnow
CS173 Running Time and Big-O Tandy Warnow CS 173 Running Times and Big-O analysis Tandy Warnow Today s material We will cover: Running time analysis Review of running time analysis of Bubblesort Review
More informationCPSC 518 Introduction to Computer Algebra Asymptotically Fast Integer Multiplication
CPSC 518 Introduction to Computer Algebra Asymptotically Fast Integer Multiplication 1 Introduction We have now seen that the Fast Fourier Transform can be applied to perform polynomial multiplication
More informationCS Non-recursive and Recursive Algorithm Analysis
CS483-04 Non-recursive and Recursive Algorithm Analysis 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 informationAlgorithm Analysis Recurrence Relation. Chung-Ang University, Jaesung Lee
Algorithm Analysis Recurrence Relation Chung-Ang University, Jaesung Lee Recursion 2 Recursion 3 Recursion in Real-world Fibonacci sequence = + Initial conditions: = 0 and = 1. = + = + = + 0, 1, 1, 2,
More information1 Closest Pair of Points on the Plane
CS 31: Algorithms (Spring 2019): Lecture 5 Date: 4th April, 2019 Topic: Divide and Conquer 3: Closest Pair of Points on a Plane Disclaimer: These notes have not gone through scrutiny and in all probability
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 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 informationSolving Recurrences. Lecture 23 CS2110 Fall 2011
Solving Recurrences Lecture 23 CS2110 Fall 2011 1 Announcements Makeup Prelim 2 Monday 11/21 7:30-9pm Upson 5130 Please do not discuss the prelim with your classmates! Quiz 4 next Tuesday in class Topics:
More informationAlgorithms CMSC Homework set #1 due January 14, 2015
Algorithms CMSC-27200 http://alg15.cs.uchicago.edu Homework set #1 due January 14, 2015 Read the homework instructions on the website. The instructions that follow here are only an incomplete summary.
More informationMore Asymptotic Analysis Spring 2018 Discussion 8: March 6, 2018
CS 61B More Asymptotic Analysis Spring 2018 Discussion 8: March 6, 2018 Here is a review of some formulas that you will find useful when doing asymptotic analysis. ˆ N i=1 i = 1 + 2 + 3 + 4 + + N = N(N+1)
More informationQuiz 1 Solutions. (a) f 1 (n) = 8 n, f 2 (n) = , f 3 (n) = ( 3) lg n. f 2 (n), f 1 (n), f 3 (n) Solution: (b)
Introduction to Algorithms October 14, 2009 Massachusetts Institute of Technology 6.006 Spring 2009 Professors Srini Devadas and Constantinos (Costis) Daskalakis Quiz 1 Solutions Quiz 1 Solutions Problem
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 informationWhen we use asymptotic notation within an expression, the asymptotic notation is shorthand for an unspecified function satisfying the relation:
CS 124 Section #1 Big-Oh, the Master Theorem, and MergeSort 1/29/2018 1 Big-Oh Notation 1.1 Definition Big-Oh notation is a way to describe the rate of growth of functions. In CS, we use it to describe
More informationMath 324 Summer 2012 Elementary Number Theory Notes on Mathematical Induction
Math 4 Summer 01 Elementary Number Theory Notes on Mathematical Induction Principle of Mathematical Induction Recall the following axiom for the set of integers. Well-Ordering Axiom for the Integers If
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 informationAn analogy from Calculus: limits
COMP 250 Fall 2018 35 - big O Nov. 30, 2018 We have seen several algorithms in the course, and we have loosely characterized their runtimes in terms of the size n of the input. We say that the algorithm
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 informationMA/CSSE 473 Day 05. Factors and Primes Recursive division algorithm
MA/CSSE 473 Day 05 actors and Primes Recursive division algorithm MA/CSSE 473 Day 05 HW 2 due tonight, 3 is due Monday Student Questions Asymptotic Analysis example: summation Review topics I don t plan
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 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 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 informationInduction and Recursion
. All rights reserved. Authorized only for instructor use in the classroom. No reproduction or further distribution permitted without the prior written consent of McGraw-Hill Education. Induction and Recursion
More informationAnalysis of Multithreaded Algorithms
Analysis of Multithreaded Algorithms Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 4435 - CS 9624 (Moreno Maza) Analysis of Multithreaded Algorithms CS 4435 - CS 9624 1 /
More informationInteger multiplication with generalized Fermat primes
Integer multiplication with generalized Fermat primes CARAMEL Team, LORIA, University of Lorraine Supervised by: Emmanuel Thomé and Jérémie Detrey Journées nationales du Calcul Formel 2015 (Cluny) November
More informationCOL106: Data Structures and Algorithms (IIT Delhi, Semester-II )
1 Solve the following recurrence relations giving a Θ bound for each of the cases 1 : (a) T (n) = 2T (n/3) + 1; T (1) = 1 (Assume n is a power of 3) (b) T (n) = 5T (n/4) + n; T (1) = 1 (Assume n is a power
More informationLecture 7: Fingerprinting. David Woodruff Carnegie Mellon University
Lecture 7: Fingerprinting David Woodruff Carnegie Mellon University How to Pick a Random Prime How to pick a random prime in the range {1, 2,, M}? How to pick a random integer X? Pick a uniformly random
More informationCS361 Homework #3 Solutions
CS6 Homework # Solutions. Suppose I have a hash table with 5 locations. I would like to know how many items I can store in it before it becomes fairly likely that I have a collision, i.e., that two items
More informationLecture 22: Multithreaded Algorithms CSCI Algorithms I. Andrew Rosenberg
Lecture 22: Multithreaded Algorithms CSCI 700 - Algorithms I Andrew Rosenberg Last Time Open Addressing Hashing Today Multithreading Two Styles of Threading Shared Memory Every thread can access the same
More informationWhen we use asymptotic notation within an expression, the asymptotic notation is shorthand for an unspecified function satisfying the relation:
CS 124 Section #1 Big-Oh, the Master Theorem, and MergeSort 1/29/2018 1 Big-Oh Notation 1.1 Definition Big-Oh notation is a way to describe the rate of growth of functions. In CS, we use it to describe
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 information5 + 9(10) + 3(100) + 0(1000) + 2(10000) =
Chapter 5 Analyzing Algorithms So far we have been proving statements about databases, mathematics and arithmetic, or sequences of numbers. Though these types of statements are common in computer science,
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 informationDivide-and-Conquer. a technique for designing algorithms
Divide-and-Conquer a technique for designing algorithms decomposing instance to be solved into subinstances of the same problem solving each subinstance combining subsolutions to obtain the solution to
More informationNOTE: You have 2 hours, please plan your time. Problems are not ordered by difficulty.
EXAM 2 solutions (COT3100, Sitharam, Spring 2017) NAME:last first: UF-ID Section NOTE: You have 2 hours, please plan your time. Problems are not ordered by difficulty. (1) Are the following functions one-to-one
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 informationMcGill University Faculty of Science. Solutions to Practice Final Examination Math 240 Discrete Structures 1. Time: 3 hours Marked out of 60
McGill University Faculty of Science Solutions to Practice Final Examination Math 40 Discrete Structures Time: hours Marked out of 60 Question. [6] Prove that the statement (p q) (q r) (p r) is a contradiction
More informationString Matching. Thanks to Piotr Indyk. String Matching. Simple Algorithm. for s 0 to n-m. Match 0. for j 1 to m if T[s+j] P[j] then
String Matching Thanks to Piotr Indyk String Matching Input: Two strings T[1 n] and P[1 m], containing symbols from alphabet Σ Goal: find all shifts 0 s n-m such that T[s+1 s+m]=p Example: Σ={,a,b,,z}
More informationMidterm Exam. CS 3110: Design and Analysis of Algorithms. June 20, Group 1 Group 2 Group 3
Banner ID: Name: Midterm Exam CS 3110: Design and Analysis of Algorithms June 20, 2006 Group 1 Group 2 Group 3 Question 1.1 Question 2.1 Question 3.1 Question 1.2 Question 2.2 Question 3.2 Question 3.3
More informationCS 4104 Data and Algorithm Analysis. Recurrence Relations. Modeling Recursive Function Cost. Solving Recurrences. Clifford A. Shaffer.
Department of Computer Science Virginia Tech Blacksburg, Virginia Copyright c 2010,2017 by Clifford A. Shaffer Data and Algorithm Analysis Title page Data and Algorithm Analysis Clifford A. Shaffer Spring
More informationChapter Summary. Mathematical Induction Strong Induction Well-Ordering Recursive Definitions Structural Induction Recursive Algorithms
1 Chapter Summary Mathematical Induction Strong Induction Well-Ordering Recursive Definitions Structural Induction Recursive Algorithms 2 Section 5.1 3 Section Summary Mathematical Induction Examples of
More informationAlgorithms (II) Yu Yu. Shanghai Jiaotong University
Algorithms (II) Yu Yu Shanghai Jiaotong University Chapter 1. Algorithms with Numbers Two seemingly similar problems Factoring: Given a number N, express it as a product of its prime factors. Primality:
More informationMethods for solving recurrences
Methods for solving recurrences Analyzing the complexity of mergesort The merge function Consider the following implementation: 1 int merge ( int v1, int n1, int v, int n ) { 3 int r = malloc ( ( n1+n
More informationExercise Sheet #1 Solutions, Computer Science, A M. Hallett, K. Smith a k n b k = n b + k. a k n b k c 1 n b k. a k n b.
Exercise Sheet #1 Solutions, Computer Science, 308-251A M. Hallett, K. Smith 2002 Question 1.1: Prove (n + a) b = Θ(n b ). Binomial Expansion: Show O(n b ): (n + a) b = For any c 1 > b = O(n b ). Show
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 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 informationCPSC 518 Introduction to Computer Algebra Schönhage and Strassen s Algorithm for Integer Multiplication
CPSC 518 Introduction to Computer Algebra Schönhage and Strassen s Algorithm for Integer Multiplication March, 2006 1 Introduction We have now seen that the Fast Fourier Transform can be applied to perform
More informationSolving Recurrences. 1. Express the running time (or use of some other resource) as a recurrence.
1 Recurrences and Recursive Code Solving Recurrences Many (perhaps most) recursive algorithms fall into one of two categories: tail recursion and divide-andconquer recursion. We would like to develop some
More informationThis is a recursive algorithm. The procedure is guaranteed to terminate, since the second argument decreases each time.
8 Modular Arithmetic We introduce an operator mod. Let d be a positive integer. For c a nonnegative integer, the value c mod d is the remainder when c is divided by d. For example, c mod d = 0 if and only
More informationWeek 7 Solution. The two implementations are 1. Approach 1. int fib(int n) { if (n <= 1) return n; return fib(n 1) + fib(n 2); } 2.
Week 7 Solution 1.You are given two implementations for finding the nth Fibonacci number(f Fibonacci numbers are defined by F(n = F(n 1 + F(n 2 with F(0 = 0 and F(1 = 1 The two implementations are 1. Approach
More informationWhy do we need math in a data structures course?
Math Review 1 Why do we need math in a data structures course? To nalyze data structures and algorithms Deriving formulae for time and memory requirements Will the solution scale? Quantify the results
More informationData Structures and Algorithms Chapter 3
Data Structures and Algorithms Chapter 3 1. Divide and conquer 2. Merge sort, repeated substitutions 3. Tiling 4. Recurrences Recurrences Running times of algorithms with recursive calls can be described
More informationInput Decidable Language -- Program Halts on all Input Encoding of Input -- Natural Numbers Encoded in Binary or Decimal, Not Unary
Complexity Analysis Complexity Theory Input Decidable Language -- Program Halts on all Input Encoding of Input -- Natural Numbers Encoded in Binary or Decimal, Not Unary Output TRUE or FALSE Time and Space
More informationIntroduction to Bioinformatics Algorithms Homework 3 Solution
Introduction to Bioinformatics Algorithms Homework 3 Solution Saad Mneimneh Computer Science Hunter College of CUNY Problem 1: Concave penalty function We have seen in class the following recurrence for
More informationCSE 431/531: Analysis of Algorithms. Dynamic Programming. Lecturer: Shi Li. Department of Computer Science and Engineering University at Buffalo
CSE 431/531: Analysis of Algorithms Dynamic Programming Lecturer: Shi Li Department of Computer Science and Engineering University at Buffalo Paradigms for Designing Algorithms Greedy algorithm Make a
More informationBasic elements of number theory
Cryptography Basic elements of number theory Marius Zimand By default all the variables, such as a, b, k, etc., denote integer numbers. Divisibility a 0 divides b if b = a k for some integer k. Notation
More informationBasic elements of number theory
Cryptography Basic elements of number theory Marius Zimand 1 Divisibility, prime numbers By default all the variables, such as a, b, k, etc., denote integer numbers. Divisibility a 0 divides b if b = a
More information