0% found this document useful (0 votes)
82 views29 pages

Raquidan J. Algorithm

This document introduces analysis of algorithms. It defines an algorithm as a set of instructions to solve a problem by taking inputs and producing outputs. It discusses why algorithm analysis is important to evaluate efficiency, especially for large inputs. Examples are given comparing sorting algorithms and their performance for different input sizes. The document introduces asymptotic analysis using Big-O notation to classify algorithms by their growth rates and evaluate their efficiency independently of machine details. Common time complexities like constant, logarithmic, and quadratic are presented.

Uploaded by

Johnrey Raquidan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
82 views29 pages

Raquidan J. Algorithm

This document introduces analysis of algorithms. It defines an algorithm as a set of instructions to solve a problem by taking inputs and producing outputs. It discusses why algorithm analysis is important to evaluate efficiency, especially for large inputs. Examples are given comparing sorting algorithms and their performance for different input sizes. The document introduces asymptotic analysis using Big-O notation to classify algorithms by their growth rates and evaluate their efficiency independently of machine details. Common time complexities like constant, logarithmic, and quadratic are presented.

Uploaded by

Johnrey Raquidan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 29

Introduction to

Analysis of Algorithms
Introduction to Analysis of Algorithms / Slide 2

Introduction
 What is Algorithm?
 a clearly specified set of simple instructions to be followed to
solve a problem
Takes a set of values, as input and
 produces a value, or set of values, as output
 May be specified
InEnglish
As a computer program
As a pseudo-code

 Data structures
 Methods of organizing data
 Program = algorithms + data structures
Introduction to Analysis of Algorithms / Slide 3

Introduction
 Why need algorithm analysis ?
 writing a working program is not good enough
 The program may be inefficient!
 If the program is run on a large data set, then the
running time becomes an issue
Introduction to Analysis of Algorithms / Slide 4

Example: Selection Problem


 Given a list of N numbers, determine the kth
largest, where k  N.
 Algorithm 1:
(1)   Read N numbers into an array
(2)   Sort the array in decreasing order by some
simple algorithm
(3)   Return the element in position k
Introduction to Analysis of Algorithms / Slide 5

Example: Selection Problem…


 Algorithm 2:
(1)   Read the first k elements into an array and sort
them in decreasing order
(2)   Each remaining element is read one by one
Ifsmaller than the kth element, then it is ignored
Otherwise, it is placed in its correct spot in the array,
bumping one element out of the array.
(3)   The element in the kth position is returned as
the answer.
Introduction to Analysis of Algorithms / Slide 6

Example: Selection Problem…


 Which algorithm is better when
 N =100 and k = 100?
 N =100 and k = 1?
 What happens when N = 1,000,000 and k =
500,000?
 There exist better algorithms
Introduction to Analysis of Algorithms / Slide 7

Algorithm Analysis
 We only analyze correct algorithms
 An algorithm is correct
 If, for every input instance, it halts with the correct output
 Incorrect algorithms
 Might not halt at all on some input instances
 Might halt with other than the desired answer
 Analyzing an algorithm
 Predicting the resources that the algorithm requires
 Resources include
Memory
Communication bandwidth
Computational time (usually most important)
Introduction to Analysis of Algorithms / Slide 8

Algorithm Analysis…
 Factors affecting the running time
 computer
 compiler
 algorithm used
 input to the algorithm
The content of the input affects the running time
typically, the input size (number of items in the input) is the main
consideration
 E.g. sorting problem  the number of items to be sorted
 E.g. multiply two matrices together  the total number of

elements in the two matrices


 Machine model assumed
 Instructions are executed one after another, with no
concurrent operations  Not parallel computers
Introduction to Analysis of Algorithms / Slide 9

Worst- / average- / best-case


 Worst-case running time of an algorithm
 The longest running time for any input of size n
 An upper bound on the running time for any input
 guarantee that the algorithm will never take longer
 Example: Sort a set of numbers in increasing order; and the
data is in decreasing order
 The worst case can occur fairly often
E.g. in searching a database for a particular piece of information
 Best-case running time
 sort a set of numbers in increasing order; and the data is
already in increasing order
 Average-case running time
 May be difficult to define what “average” means
Introduction to Analysis of Algorithms / Slide 10

Running-time of algorithms
 Bounds are for the algorithms, rather than
programs
 programs are just implementations of an algorithm,
and almost always the details of the program do
not affect the bounds

 Bounds are for algorithms, rather than


problems
 A problem can be solved with several algorithms,
some are more efficient than others
Introduction to Analysis of Algorithms / Slide 11

But, how to measure the time?


 Multiplication and addition: which one takes longer?
 How do we measure >=, assignment, &&, ||, etc etc
Machine dependent?
Introduction to Analysis of Algorithms / Slide 12

What is the efficiency of an


algorithm?
Run time in the computer: Machine Dependent

Example: Need to multiply two positive integers a and b

Subroutine 1: Multiply a and b

Subroutine 2: V = a, W= b
While W > 1 V
V + a; W W-1
Output V
Solution: Machine Independent
Introduction to Analysis of Algorithms / Slide 13

Analysis

We assume that every basic operation takes constant time:

Example Basic Operations:


Addition, Subtraction, Multiplication, Memory Access

Non-basic Operations:
Sorting, Searching

Efficiency of an algorithm is the number of basic


operations it performs
We do not distinguish between the basic operations.
Introduction to Analysis of Algorithms / Slide 14

Subroutine 1 uses ? basic operation


Subroutine 2 uses ? basic operations

Subroutine ? is more efficient.

This measure is good for all large input sizes

In fact, we will not worry about the exact values, but will
look at ``broad classes’ of values, or the growth rates
Let there be n inputs.
If an algorithm needs n basic operations and another
needs 2n basic operations, we will consider them to be in
the same efficiency category.
However, we distinguish between exp(n), n, log(n)
Introduction to Analysis of Algorithms / Slide 15

Growth Rate

 f(N) grows no faster than g(N) for “large” N


Introduction to Analysis of Algorithms / Slide 16

Asymptotic notation: Big-Oh


 f(N) = O(g(N))
 There are positive constants c and n0 such
that
f(N)  c g(N) when N  n0

 The growth rate of f(N) is less than or equal to


the growth rate of g(N)
 g(N) is an upper bound on f(N)
Introduction to Analysis of Algorithms / Slide 17

Big-Oh: example
 Let f(N) = 2N2. Then
 f(N) = O(N4)
 f(N) = O(N3)
 f(N) = O(N2) (best answer, asymptotically tight)
Introduction to Analysis of Algorithms / Slide 18

Big Oh: more examples


 N2 / 2 – 3N = O(N2)
 1 + 4N = O(N)
 7N2 + 10N + 3 = O(N2)
 log10 N = log2 N / log2 10 = O(log2 N) = O(log N)
 sin N = O(1); 10 = O(1), 1010 = O(1)


 N
i 1
i  N  N  O( N ) 2

 log N + N = O(N)
 N = O(2N), but 2N is not O(N)
 210N is not O(2N)
Introduction to Analysis of Algorithms / Slide 19

Some rules
When considering the growth rate of a function using
Big-Oh
 Ignore the lower order terms and the coefficients of
the highest-order term
 No need to specify the base of logarithm
 Changing the base from one constant to another changes the
value of the logarithm by only a constant factor
Introduction to Analysis of Algorithms / Slide 20

Typical Growth Rates


Introduction to Analysis of Algorithms / Slide 21
Introduction to Analysis of Algorithms / Slide 22
Introduction to Analysis of Algorithms / Slide 23

 Advantages of algorithm analysis


 To eliminate bad algorithms early
 pinpoints the bottlenecks, which are worth coding
carefully
Introduction to Analysis of Algorithms / Slide 24

Example
N
Calculate

 3
i
i 1

1 1
2 2N+2
3 4N
4
1

 Lines 1 and 4 count for one unit each


 Line 3: executed N times, each time four units
 Line 2: (1 for initialization, N+1 for all the tests, N for
all the increments) total 2N + 2
 total cost: 6N + 4  O(N)
Introduction to Analysis of Algorithms / Slide 25

General Rules
 For loops
 at most the running time of the statements inside
the for-loop (including tests) times the number of
iterations.
 Nested for loops

 the running time of the statement multiplied by the


product of the sizes of all the for-loops.
 O(N2)
Introduction to Analysis of Algorithms / Slide 26

General rules (cont’d)


 Consecutive statements

 These just add


 O(N) + O(N2) = O(N2)
 If/Else
 never more than the running time of the test plus the larger of
Introduction to Analysis of Algorithms / Slide 27

Another Example
 Maximum Subsequence Sum Problem
 Given (possibly negative) integers
j
A1, A2, ....,
An, find the maximum value of  Ak
k i

 For convenience, the maximum subsequence sum


is 0 if all the integers are negative

 E.g. for input –2, 11, -4, 13, -5, -2


 Answer: 20 (A2 through A4)
Introduction to Analysis of Algorithms / Slide 28

Algorithm 1: Simple
 Exhaustively tries all possibilities (brute force)

 O(N3)
Introduction to Analysis of Algorithms / Slide 29

THE END!

Reference: https://slideplayer.com/slide/4942567/

You might also like