CSE 373: Data Structures and Algorithms Lecture 4: Math Review/Asymptotic Analysis II 1.

Slides:



Advertisements
Similar presentations
Analysis of Algorithms
Advertisements

Discrete Structures CISC 2315
 The running time of an algorithm as input size approaches infinity is called the asymptotic running time  We study different notations for asymptotic.
CSE 373 Data Structures and Algorithms Lecture 5: Math Review/Asymptotic Analysis III.
CSE332: Data Abstractions Lecture 2: Math Review; Algorithm Analysis Tyler Robison Summer
Asymptotic Growth Rate
Cutler/HeadGrowth of Functions 1 Asymptotic Growth Rate.
1 TCSS 342, Winter 2005 Lecture Notes Course Overview, Review of Math Concepts, Algorithm Analysis and Big-Oh Notation Weiss book, Chapter 5, pp
25 June 2015Comp 122, Spring 2004 Asymptotic Notation, Review of Functions & Summations.
Chapter 2: Fundamentals of the Analysis of Algorithm Efficiency
Tirgul 2 Asymptotic Analysis. Motivation: Suppose you want to evaluate two programs according to their run-time for inputs of size n. The first has run-time.
Chapter 2: Algorithm Analysis Big-Oh and Other Notations in Algorithm Analysis Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm.
Analysis of Algorithms COMP171 Fall Analysis of Algorithms / Slide 2 Introduction * What is Algorithm? n a clearly specified set of simple instructions.
DATA STRUCTURES AND ALGORITHMS Lecture Notes 1 Prepared by İnanç TAHRALI.
CSE 373 Data Structures and Algorithms Lecture 4: Asymptotic Analysis II / Math Review.
Algorithm analysis and design Introduction to Algorithms week1
TCSS 342 Lecture Notes Course Overview, Review of Math Concepts,
Asymptotic Notations Iterative Algorithms and their analysis
CSE 373: Data Structures and Algorithms Lecture 4: Math Review/Asymptotic Analysis II 1.
Growth Rates of Functions 3/26/12. Asymptotic Equivalence Def: For example, Note that n 2 +1 is being used to name the function f such that f(n) = n 2.
1 Big-Oh Notation CS 105 Introduction to Data Structures and Algorithms.
Algorithm Efficiency CS 110: Data Structures and Algorithms First Semester,
Analysis of Algorithms
Analysis of Algorithms1 The Goal of the Course Design “good” data structures and algorithms Data structure is a systematic way of organizing and accessing.
CSC 201 Analysis and Design of Algorithms Lecture 04: CSC 201 Analysis and Design of Algorithms Lecture 04: Time complexity analysis in form of Big-Oh.
Design and Analysis Algorithm Drs. Achmad Ridok M.Kom Fitra A. Bachtiar, S.T., M. Eng Imam Cholissodin, S.Si., M.Kom Aryo Pinandito, MT Pertemuan 04.
CS 3343: Analysis of Algorithms
1 COMP3040 Tutorial 1 Analysis of algorithms. 2 Outline Motivation Analysis of algorithms Examples Practice questions.
Asymptotic Analysis-Ch. 3
Coursenotes CS3114: Data Structures and Algorithms Clifford A. Shaffer Department of Computer Science Virginia Tech Copyright ©
CSE 373: Data Structures and Algorithms Lecture 5: Math Review/Asymptotic Analysis III 1.
Program Efficiency & Complexity Analysis. Algorithm Review An algorithm is a definite procedure for solving a problem in finite number of steps Algorithm.
Analysis of Algorithms [ Section 4.1 ] Examples of functions important in CS: the constant function:f(n) =
Zeinab EidAlgorithm Analysis1 Chapter 4 Analysis Tools.
CSC – 332 Data Structures Generics Analysis of Algorithms Dr. Curry Guinn.
Time Complexity of Algorithms
Time Complexity of Algorithms (Asymptotic Notations)
General rules: Find big-O f(n) = k = O(1) f(n) = a k n k + a k-1 n k a 1 n 1 + a 0 = O(n k ) Other functions, try to find the dominant term according.
1/6/20161 CS 3343: Analysis of Algorithms Lecture 2: Asymptotic Notations.
CSE 373: Data Structures and Algorithms
Algorithm Complexity L. Grewe 1. Algorithm Efficiency There are often many approaches (algorithms) to solve a problem. How do we choose between them?
Lecture aid 1 Devon M. Simmonds University of North Carolina, Wilmington CSC231 Data Structures.
1 CMSC 341 Math Review. 2 Exponents Identities (X A ) B = X AB X A * X B = X A+B X A / X B = X A-B X A + X B  X A+B.
1 CSE 373 Algorithm Analysis and Runtime Complexity slides created by Marty Stepp ©
Kompleksitas Waktu Asimptotik CSG3F3 Lecture 5. 2 Intro to asymptotic f(n)=an 2 + bn + c RMB/CSG3F3.
Dale Roberts Department of Computer and Information Science, School of Science, IUPUI Dale Roberts, Lecturer Computer Science, IUPUI
1 Chapter 2 Algorithm Analysis All sections. 2 Complexity Analysis Measures efficiency (time and memory) of algorithms and programs –Can be used for the.
Algorithms Lecture #05 Uzair Ishtiaq. Asymptotic Notation.
DR. Gatot F. Hertono, MSc. Design and Analysis of ALGORITHM (Session 2)
1 Chapter 2 Algorithm Analysis Reading: Chapter 2.
Complexity of Algorithms Fundamental Data Structures and Algorithms Ananda Guna January 13, 2005.
LECTURE 2 : fundamentals of analysis of algorithm efficiency Introduction to design and analysis algorithm 1.
Lecture 3COMPSCI.220.S1.T Running Time: Estimation Rules Running time is proportional to the most significant term in T(n) Once a problem size.
Introduction to Algorithms Analysis
Asymptotic Growth Rate
TCSS 342, Winter 2006 Lecture Notes
Fundamentals of Algorithms MCS - 2 Lecture # 9
Chapter 2: Fundamentals of the Analysis of Algorithm Efficiency
Advanced Analysis of Algorithms
CSE 373 Optional Section Led by Yuanwei, Luyi Apr
CSC 380: Design and Analysis of Algorithms
G.PULLAIAH COLLEGE OF ENGINEERING AND TECHNOLOGY
CSC 380: Design and Analysis of Algorithms
CSE 373, Copyright S. Tanimoto, 2001 Asymptotic Analysis -
CS210- Lecture 2 Jun 2, 2005 Announcements Questions
Advanced Analysis of Algorithms
Estimating Algorithm Performance
Big Omega, Theta Defn: T(N) = (g(N)) if there are positive constants c and n0 such that T(N)  c g(N) for all N  n0 . Lingo: “T(N) grows no slower than.
Algorithm Course Dr. Aref Rashad
Presentation transcript:

CSE 373: Data Structures and Algorithms Lecture 4: Math Review/Asymptotic Analysis II 1

Asymptotic upper bound Defn: f(n) = O(g(n)), if there exists positive constants c, n 0 such that: f(n)  c · g(n) for all n  n 0 Idea: We are concerned with how the function grows when N is large. We are not concerned with constant factors: coarse distinctions among functions Lingo: "f(n) grows no faster than g(n)." Big-Oh notation 2 c *

Functions in Algorithm Analysis f(n) : {0, 1,  }   + – domain of f is the nonnegative integers – range of f is the nonnegative reals Unless otherwise indicated, the symbols f, g, h, and T refer to functions with this domain and range. We use many functions with other domains and ranges. – Example: f(n) = 5 n log 2 (n/3) Although the domain of f is nonnegative integers, the domain of log 2 is all positive reals. 3

n = O(2n) ? 2n = O(n) ? n = O(n 2 ) ? n 2 = O(n) ? n = O(1)? 100 = O(n) ? 214n + 34 = O(2n 2 + 8n) ? Big-Oh example problems 4

pick tightest bound. If f(n) = 5n, then: f(n) = O(n 5 ) f(n) = O(n 3 ) f(n) = O(n log n) f(n) = O(n)  preferred ignore constant factors and low order terms f(n) = O(n), not f(n) = O(5n) f(n) = O(n 3 ), not f(n) = O(n 3 + n 2 + n log n) – Wrong: f(n)  O(g(n)) – Wrong: f(n)  O(g(n)) Preferred big-Oh usage 5

Show f(n) = O(n) Claim: 2n + 6 = O(n) Proof: Must find c, n 0 such that for all n > n 0, 2n + 6 <= n 6

big-Oh Defn: f(n) = O(g(n)) if there exist positive constants c, n 0 such that: f(n)  c · g(n) for all n  n 0 big-Omega Defn: f(n) =  (g(n)) if there are positive constants c and n 0 such that f(n)  c g(n) for all n  n 0 – Lingo: "f(n) grows no slower than g(n)." big-Theta Defn: f(n) =  (g(n)) if and only if f(n) = O(g(n)) and f(n) =  (g(n)). – Big-Oh, Omega, and Theta establish a relative ordering among all functions of n Big omega, theta 7

notationintuition O (Big-Oh) f(n)  g(n)  (Big-Omega) f(n)  g(n)  (Theta) f(n) = g(n) Intuition about the notations 8

Efficiency examples 3 sum = 0; for (int i = 1; i <= N * N; i++) { for (int j = 1; j <= N * N * N; j++) { sum++; } ? ? ? 9

Efficiency examples 3 sum = 0; for (int i = 1; i <= N * N; i++) { for (int j = 1; j <= N * N * N; j++) { sum++; } N N2N2 N3N3 So what is the Big-Oh? 10

Math background: Exponents Exponents – X Y, or "X to the Y th power"; X multiplied by itself Y times Some useful identities – X A X B = X A+B – X A / X B = X A-B – (X A ) B = X AB – X N +X N = 2X N – 2 N +2 N = 2 N+1 11

Efficiency examples 4 sum = 0; for (int i = 1; i <= N; i += c) { sum++; } ? ? 12

Efficiency examples 4 sum = 0; for (int i = 1; i <= N; i += c) { sum++; } N/c + 1 N/c What is the Big-Oh? – Intuition: Adding to the loop counter means that the loop runtime grows linearly when compared to its maximum value n. 13

Efficiency examples 5 sum = 0; for (int i = 1; i <= N; i *= c) { sum++; } ? ? Intuition: Multiplying the loop counter means that the maximum value n must grow exponentially to linearly increase the loop runtime 14

Efficiency examples 5 sum = 0; for (int i = 1; i <= N; i *= c) { sum++; } log c N + 1 log c N What is the Big-Oh? 15

Math background: Logarithms Logarithms – definition: X A = B if and only if log X B = A – intuition: log X B means: "the power X must be raised to, to get B" – In this course, a logarithm with no base implies base 2. log B means log 2 B Examples – log 2 16 = 4(because 2 4 = 16) – log = 3(because 10 3 = 1000) 16

Identities for logs with addition, multiplication, powers: log (AB) = log A + log B log (A/B) = log A – log B log (A B ) = B log A Identity for converting bases of a logarithm: – example: log 4 32 = (log 2 32) / (log 2 4) = 5 / 2 Logarithm identities 17

Techniques: Logarithm problem solving When presented with an expression of the form: – log a X = Y and trying to solve for X, raise both sides to the a power. – X = a Y When presented with an expression of the form: – log a X = log b Y and trying to solve for X, find a common base between the logarithms using the identity on the last slide. – log a X = log a Y / log a b 18

Logarithm practice problems Determine the value of x in the following equation. – log 7 x + log 7 13 = 3 Determine the value of x in the following equation. – log log 8 x = log log

Prove identity for converting bases Prove log a b = log c b / log c a. 20

A log is a log… We will assume all logs are to base 2 Fine for Big Oh analysis because the log to one base is equivalent to the log of another base within a constant factor – E.g., log 10 x is equivalent to log 2 x within what constant factor? 21

Efficiency examples 6 int sum = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j <= i / 2; j += 2) { sum++; } 22

Series – for some expression Expr (possibly containing i ), means the sum of all values of Expr with each value of i between j and k inclusive Math background: Arithmetic series Example: = (2(0) + 1) + (2(1) + 1) + (2(2) + 1) + (2(3) + 1) + (2(4) + 1) = = 25 23

Series identities sum from 1 through N inclusive is there an intuition for this identity? – sum of all numbers from 1 to N (N-2) + (N-1) + N – how many terms are in this sum? Can we rearrange them? 24