zeinab eidalgorithm analysis1 chapter 4 analysis tools

Post on 05-Jan-2016

223 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Zeinab Eid Algorithm Analysis 1

Chapter 4

Analysis Tools

Zeinab Eid Algorithm Analysis 2

Zeinab Eid Algorithm Analysis 3

Why we Analyze Algorithms

We try to save computer resources such as: Memory space used to store data structures, Space

Complexity

CPU time, which is reflected by Algorithm Run

Time Complexity.

Zeinab Eid Algorithm Analysis 4

4.1 Seven Functions

1. The Constant Function: f(n)= c,

where c is some fixed constant, c=5, c=100, or c=210, so we let g(n)=1, so f(n)=cg(n)

2. The Logarith Function: f(n)= logbn

x = logbn iff bx=n ,

(see Proposition 4.1), the most common base for logarithmic function in computer science is 2.

3. Linear Function: f(n)= n , important for algorithms on vectors (one dim. Arrays).

Zeinab Eid Algorithm Analysis 5

4. The N-Log-N Function: f(n)= nlogn

This function grows a little faster than linear function and a lot slower than quadratic function.

5. The Quadratic Function: f(n)= n2

It’s important for algorithms of nested loops.

6. The Cubic Function (Polynomial): f(n)= n3

f(n)=a0+a1n+ a2n2+…+adnd, is a polynomial of degree d,

where a0 , a1 ,…., ad are constants. 7. The Exponential Function: f(n)= bn

Zeinab Eid Algorithm Analysis 6

Zeinab Eid Algorithm Analysis 7

Zeinab Eid Algorithm Analysis 8

Zeinab Eid Algorithm Analysis 9

Zeinab Eid Algorithm Analysis 10

Zeinab Eid Algorithm Analysis 12

Zeinab Eid Algorithm Analysis 13

Zeinab Eid Algorithm Analysis 14

Zeinab Eid Algorithm Analysis 15

We define a set of primitive operations such as the following: • Assigning a value to a variable• Calling a method• Performing an arithmetic operation (for example, adding two numbers)• Comparing two numbers• Indexing into an array• Following an object reference• Returning from a method.

Zeinab Eid Algorithm Analysis 16

Zeinab Eid Algorithm Analysis 17

Zeinab Eid Algorithm Analysis 18

Primitive Operations

Zeinab Eid Algorithm Analysis 19

Counting Primitive Operations

Zeinab Eid Algorithm Analysis 20

Zeinab Eid Algorithm Analysis 21

Zeinab Eid Algorithm Analysis 22

Zeinab Eid Algorithm Analysis 23

4.2.3 Asymptotic Notation

Zeinab Eid Algorithm Analysis 24

Example

Zeinab Eid Algorithm Analysis 25

Zeinab Eid Algorithm Analysis 26

Zeinab Eid Algorithm Analysis 27

Properties of Big-Oh Notation

Zeinab Eid Algorithm Analysis 28

Zeinab Eid Algorithm Analysis 29

Zeinab Eid Algorithm Analysis 30

Zeinab Eid Algorithm Analysis 31

Zeinab Eid Algorithm Analysis 32

Zeinab Eid Algorithm Analysis 33

Zeinab Eid Algorithm Analysis 34

Big-Omega and Big-Theta

Zeinab Eid Algorithm Analysis 35

Zeinab Eid Algorithm Analysis 36

Big-Omega

• Just as Big-Oh notation provides us a way of saying that a function f(n) is “less than or equal to” another function,

• Big-Omega notation provides us a way of saying that a function f(n) is “greater than or equal to” another function.

• Let f(n) and g(n) be functions mapping non-negative integers: We say that f(n) is Ω(g(n)) if g(n) is O(f(n))

• That’s there is a real constant c>0 and an integer constant n0 ≥ 1 such that:

f(n) ≥ cg(n), for n ≥ n0

Zeinab Eid Algorithm Analysis 37

Big-Theta

• In addition, there is a notation that allows us to say that two functions grow at the same rate , up to a constant factor.

• We say that f(n) is Θ(g(n)) if f(n) is O(g(n)) and f(n) is Ω(g(n)),

• That’s, there are real constants c’>0 and c”>0 and an integer constant n0 ≥ 1 such that:

c’g(n) ≤ f(n) ≥ c”g(n), for n ≥ n0 .

Zeinab Eid Algorithm Analysis 38

Example

• f(n) = 3nlog n + 4n + 5log n is Θ(nlog n)• Since 3nlog n + 4n + 5log n ≥ 3nlog n for n ≥2• So, f(n) is Ω(nlog n)• Since 3nlog n + 4n + 5log n ≤ (3+4+5)nlog n

for n ≥2• So, f(n) is O(nlog n)• Thus, f(n) is Θ(nlog n)

Zeinab Eid Algorithm Analysis 39

top related