Algorithm Analysis CS 400/600 – Data Structures. Algorithm Analysis2 Abstract Data Types Abstract Data Type (ADT): a definition for a data type solely.

Slides:



Advertisements
Similar presentations
Analysis of Algorithms
Advertisements

CSE 373: Data Structures and Algorithms Lecture 5: Math Review/Asymptotic Analysis III 1.
Razdan with contribution from others 1 Algorithm Analysis What is the Big ‘O Bout? Anshuman Razdan Div of Computing.
Chapter 1 – Basic Concepts
Chapter 3 Growth of Functions
Chapter 10 Algorithm Efficiency
1 ICS 353 Design and Analysis of Algorithms Spring Semester (062) King Fahd University of Petroleum & Minerals Information & Computer Science.
Cutler/HeadGrowth of Functions 1 Asymptotic Growth Rate.
Analyzing algorithms & Asymptotic Notation BIO/CS 471 – Algorithms for Bioinformatics.
1 Data Structures A program solves a problem. A program solves a problem. A solution consists of: A solution consists of:  a way to organize the data.
CS3381 Des & Anal of Alg ( SemA) City Univ of HK / Dept of CS / Helena Wong 2. Analysis of Algorithms - 1 Analysis.
Analysis of Algorithms 7/2/2015CS202 - Fundamentals of Computer Science II1.
Elementary Data Structures and Algorithms
Analysis of Algorithms COMP171 Fall Analysis of Algorithms / Slide 2 Introduction * What is Algorithm? n a clearly specified set of simple instructions.
Lecture 3: Algorithms and Complexity Study Chapter COMP 555 Bioalgorithms Fall 2014.
Analysis of Algorithms Spring 2015CS202 - Fundamentals of Computer Science II1.
DATA STRUCTURES AND ALGORITHMS Lecture Notes 1 Prepared by İnanç TAHRALI.
Algorithm analysis and design Introduction to Algorithms week1
Asymptotic Notations Iterative Algorithms and their analysis
1 Chapter 2 Program Performance – Part 2. 2 Step Counts Instead of accounting for the time spent on chosen operations, the step-count method accounts.
Time Complexity Dr. Jicheng Fu Department of Computer Science University of Central Oklahoma.
Algorithm Analysis & Complexity We saw that a linear search used n comparisons in the worst case (for an array of size n) and binary search had logn comparisons.
CSC 201 Analysis and Design of Algorithms Lecture 03: Introduction to a CSC 201 Analysis and Design of Algorithms Lecture 03: Introduction to a lgorithms.
Chapter 2.6 Comparison of Algorithms modified from Clifford A. Shaffer and George Bebis.
Week 2 CS 361: Advanced Data Structures and Algorithms
SEARCHING, SORTING, AND ASYMPTOTIC COMPLEXITY Lecture 12 CS2110 – Fall 2009.
Basic Concepts 2014, Fall Pusan National University Ki-Joune Li.
Mathematics Review and Asymptotic Notation
1 Computer Algorithms Lecture 3 Asymptotic Notation Some of these slides are courtesy of D. Plaisted, UNC and M. Nicolescu, UNR.
CS 3343: Analysis of Algorithms
Iterative Algorithm Analysis & Asymptotic Notations
2IL50 Data Structures Fall 2015 Lecture 2: Analysis of Algorithms.
Analyzing algorithms & Asymptotic Notation BIO/CS 471 – Algorithms for Bioinformatics.
Coursenotes CS3114: Data Structures and Algorithms Clifford A. Shaffer Department of Computer Science Virginia Tech Copyright ©
Program Efficiency & Complexity Analysis. Algorithm Review An algorithm is a definite procedure for solving a problem in finite number of steps Algorithm.
Algorithm Analysis Part 2 Complexity Analysis. Introduction Algorithm Analysis measures the efficiency of an algorithm, or its implementation as a program,
Algorithm Efficiency There are often many approaches (algorithms) to solve a problem. How do we choose between them? At the heart of a computer program.
Chapter 5 Algorithms (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Java Methods Big-O Analysis of Algorithms Object-Oriented Programming
1 Asymptotic Notations Iterative Algorithms and their analysis Asymptotic Notations –Big O,  Notations Review of Discrete Math –Summations –Logarithms.
Time Complexity of Algorithms (Asymptotic Notations)
Time Complexity. Solving a computational program Describing the general steps of the solution –Algorithm’s course Use abstract data types and pseudo code.
Data Structures and Algorithms IT12112
1/6/20161 CS 3343: Analysis of Algorithms Lecture 2: Asymptotic Notations.
Algorithm Complexity L. Grewe 1. Algorithm Efficiency There are often many approaches (algorithms) to solve a problem. How do we choose between them?
Algorithm Analysis. What is an algorithm ? A clearly specifiable set of instructions –to solve a problem Given a problem –decide that the algorithm is.
E.G.M. PetrakisAlgorithm Analysis1  Algorithms that are equally correct can vary in their utilization of computational resources  time and memory  a.
1 Chapter 2 Algorithm Analysis All sections. 2 Complexity Analysis Measures efficiency (time and memory) of algorithms and programs –Can be used for the.
DR. Gatot F. Hertono, MSc. Design and Analysis of ALGORITHM (Session 2)
BITS Pilani Pilani Campus Data Structure and Algorithms Design Dr. Maheswari Karthikeyan Lecture1.
1 Chapter 2 Algorithm Analysis Reading: Chapter 2.
Complexity of Algorithms Fundamental Data Structures and Algorithms Ananda Guna January 13, 2005.
Analysis of Algorithms Spring 2016CS202 - Fundamentals of Computer Science II1.
September 18, Algorithms and Data Structures Lecture II Simonas Šaltenis Aalborg University
Algorithmic Foundations COMP108 COMP108 Algorithmic Foundations Algorithm efficiency Prudence Wong.
CSE 3358 NOTE SET 2 Data Structures and Algorithms 1.
Data Structures & Algorithm CS-102 Lecture 12 Asymptotic Analysis Lecturer: Syeda Nazia Ashraf 1.
Algorithmic Foundations COMP108 COMP108 Algorithmic Foundations Algorithm efficiency Prudence Wong
Chapter 2 Algorithm Analysis
Analysis of Algorithms
Introduction to Algorithms
CS 3343: Analysis of Algorithms
Algorithm design and Analysis
CS 3343: Analysis of Algorithms
Analysis of Algorithms
Asst. Dr.Surasak Mungsing
Performance Evaluation
At the end of this session, learner will be able to:
Analysis of Algorithms
Presentation transcript:

Algorithm Analysis CS 400/600 – Data Structures

Algorithm Analysis2 Abstract Data Types Abstract Data Type (ADT): a definition for a data type solely in terms of a set of values and a set of operations on that data type. Each ADT operation is defined by its inputs and outputs. Encapsulation: Hide implementation details.

Algorithm Analysis3 Data Structure  A data structure is the physical implementation of an ADT. Each operation associated with the ADT is implemented by one or more subroutines in the implementation.  Data structure usually refers to an organization for data in main memory.

Algorithm Analysis4 Algorithms and Programs Algorithm: a method or a process followed to solve a problem. A recipe. An algorithm takes the input to a problem (function) and transforms it to the output. A mapping of input to output. A problem can have many algorithms.

Algorithm Analysis5 Algorithm Properties An algorithm possesses the following properties: It must be correct. It must be composed of a series of concrete steps. There can be no ambiguity as to which step will be performed next. It must be composed of a finite number of steps. It must terminate. A computer program is an instance, or concrete representation, for an algorithm in some programming language.

Algorithm Analysis6 How fast is an algorithm?  To compare two sorting algorithms, should we talk about how fast the algorithms can sort 10 numbers, 100 numbers or 1000 numbers?  We need a way to talk about how fast the algorithm grows or scales with the input size. Input size is usually called n An algorithm can take 100n steps, or 2n 2 steps, which one is better?

Algorithm Analysis7 Introduction to Asymptotic Notation  We want to express the concept of “about”, but in a mathematically rigorous way  Limits are useful in proofs and performance analyses  notation:  (n 2 ) = “this function grows similarly to n 2 ”.  Big-O notation: O (n 2 ) = “this function grows at least as slowly as n 2 ”. Describes an upper bound.

Algorithm Analysis8 Big-O  What does it mean? If f(n) = O(n 2 ), then:  f(n) can be larger than n 2 sometimes, but…  I can choose some constant c and some value n 0 such that for every value of n larger than n 0 : f(n) < cn 2  That is, for values larger than n 0, f(n) is never more than a constant multiplier greater than n 2  Or, in other words, f(n) does not grow more than a constant factor faster than n 2.

Algorithm Analysis9 Visualization of O(g(n)) n0n0 cg(n) f(n)f(n)

Algorithm Analysis10 Big-O

Algorithm Analysis11 More Big-O  Prove that:  Let c = 21 and n 0 = 4  21n 2 > 20n 2 + 2n + 5 for all n > 4 n 2 > 2n + 5 for all n > 4 TRUE

Algorithm Analysis12 Tight bounds  We generally want the tightest bound we can find.  While it is true that n 2 + 7n is in O(n 3 ), it is more interesting to say that it is in O(n 2 )

Algorithm Analysis13 Big Omega – Notation  () – A lower bound n 2 =  (n) Let c = 1, n 0 = 2 For all n  2, n 2 > 1  n

Algorithm Analysis14 Visualization of  (g(n)) n0n0 cg(n) f(n)f(n)

Algorithm Analysis15  -notation  Big-O is not a tight upper bound. In other words n = O(n 2 )  provides a tight bound  In other words,

Algorithm Analysis16 Visualization of  (g(n)) n0n0 c2g(n)c2g(n) f(n)f(n) c1g(n)c1g(n)

Algorithm Analysis17 A Few More Examples  n = O(n 2 ) ≠  (n 2 )  200n 2 = O(n 2 ) =  (n 2 )  n 2.5 ≠ O(n 2 ) ≠  (n 2 )

Algorithm Analysis18 Some Other Asymptotic Functions  Little o – A non-tight asymptotic upper bound n = o(n 2 ), n = O(n 2 ) 3n 2 ≠ o(n 2 ), 3n 2 = O(n 2 )  () – A lower bound Similar definition to Big-O n 2 =  (n)  () – A non-tight asymptotic lower bound  f(n) =  (n)  f(n) = O(n) and f(n) =  (n)

Algorithm Analysis19 Visualization of Asymptotic Growth n0n0 O(f(n)) f(n)f(n)  (f(n))  (f(n)) o(f(n))  (f(n))

Algorithm Analysis20 Analogy to Arithmetic Operators

Algorithm Analysis21 Example 2  Prove that:  Let c = 21 and n 0 = 10  21n 3 > 20n 3 + 7n for all n > 10 n 3 > 7n + 5 for all n > 10 TRUE, but we also need…  Let c = 20 and n 0 = 1  20n 3 < 20n 3 + 7n for all n  1 TRUE

Algorithm Analysis22 Example 3  Show that  Let c = 2 and n 0 = 5

Algorithm Analysis23 Looking at Algorithms  Asymptotic notation gives us a language to talk about the run time of algorithms.  Not for just one case, but how an algorithm performs as the size of the input, n, grows.  Tools: Series sums Recurrence relations

Algorithm Analysis24 Running Time Examples (1) Example 1: a = b; This assignment takes constant time, so it is  (1). Example 2: sum = 0; for (i=1; i<=n; i++) sum += n;

Algorithm Analysis25 Running Time Examples (2) Example 2: sum = 0; for (j=1; j<=n; j++) for (i=1; i<=j; i++) sum++; for (k=0; k<n; k++) A[k] = k;

Algorithm Analysis26 Series Sums  The arithmetic series: … + n =  Linearity:

Algorithm Analysis27 Series Sums  … + n – 1 =  Example:

Algorithm Analysis28 More Series  Geometric Series: 1 + x + x 2 + x 3 + … + x n  Example:

Algorithm Analysis29 Telescoping Series  Consider the series:  Look at the terms:

Algorithm Analysis30 Telescoping Series  In general:

Algorithm Analysis31 The Harmonic Series

Algorithm Analysis32 Others  For more help in solving series sums, see: Section 2.5, pages 30 – 34 Section 14.1, pages 452 – 454

Algorithm Analysis33 Running Time Examples (3) Example 3: sum1 = 0; for (i=1; i<=n; i++) for (j=1; j<=n; j++) sum1++; sum2 = 0; for (i=1; i<=n; i++) for (j=1; j<=i; j++) sum2++;

Algorithm Analysis34 Best, Worst, Average Cases Not all inputs of a given size take the same time to run. Sequential search for K in an array of n integers: Begin at first element in array and look at each element in turn until K is found Best case: Worst case: Average case:

Algorithm Analysis35 Space Bounds Space bounds can also be analyzed with asymptotic complexity analysis. Time: Algorithm Space Data Structure

Algorithm Analysis36 Space/Time Tradeoff Principle One can often reduce time if one is willing to sacrifice space, or vice versa. Encoding or packing information Boolean flags Table lookup Factorials Disk-based Space/Time Tradeoff Principle: The smaller you make the disk storage requirements, the faster your program will run.

Algorithm Analysis37 Faster Computer or Faster Algorithm?  Suppose, for your algorithm, f(n) = 2n 2  In T seconds, you can process k inputs  If you get a computer 64 times faster, how many inputs can you process in T seconds?

Algorithm Analysis38 Faster Computer or Algorithm? If we have a computer that does 10,000 operations per second, what happens when we buy a computer 10 times faster? T(n)T(n)nn’n’Changen’/n 10n1,00010,000n’ = 10n10 20n5005,000n’ = 10n10 5n log n2501,842  10 n < n’ < 10n n22n n’ =  10n n2n 1316n’ = n

Algorithm Analysis39 Binary Search // Return position of element in sorted // array of size n with value K. int binary(int array[], int n, int K) { int l = -1; int r = n; // l, r are beyond array bounds while (l+1 != r) { // Stop when l, r meet int i = (l+r)/2; // Check middle if (K < array[i]) r = i; // Left half if (K == array[i]) return i; // Found it if (K > array[i]) l = i; // Right half } return n; // Search value not in array }

Algorithm Analysis40 Recurrence Relations  Recursion trees