• No results found

DSA 2.ppt

N/A
N/A
Protected

Academic year: 2020

Share "DSA 2.ppt"

Copied!
50
0
0

Loading.... (view fulltext now)

Full text

(1)

Algorithms

(2)

Introduction

Introduction

• The methods of algorithm design form one of the core practical technologies of computer science.

• The main aim of this lecture is to familiarize the student with the framework we shall use through the course

about the design and analysis of algorithms.

• We start with a discussion of the algorithms needed to solve computational problems. The problem of sorting is used as a running example.

(3)

Algorithms

Algorithms

• The word algorithm comes from the name of a Persian mathematician Abu Ja’far Mohammed ibn-i Musa al Khowarizmi.

• In computer science, this word refers to a special

method useable by a computer for solution of a problem. The statement of the problem specifies in general terms the desired input/output relationship.

• For example, sorting a given sequence of numbers into nondecreasing order provides fertile ground for

(4)

The problem of sorting

(5)

Insertion Sort

(6)

Example of Insertion Sort

(7)

Example of Insertion Sort

(8)

Example of Insertion Sort

(9)

Example of Insertion Sort

(10)

Example of Insertion Sort

(11)

Example of Insertion Sort

(12)

Example of Insertion Sort

(13)

Example of Insertion Sort

(14)

Example of Insertion Sort

(15)

Example of Insertion Sort

(16)

Example of Insertion Sort

(17)

Analysis of algorithms

Analysis of algorithms

The theoretical study of computer-program performance and resource usage.

What’s more important than performance? • modularity

• correctness • maintainability

• functionality • robustness • user-friendliness • programmer time

• simplicity • extensibility

(18)

Analysis of algorithms

Analysis of algorithms

Why study algorithms and performance?

• Algorithms help us to understand scalability.

• Performance often draws the line between what is feasible and what is impossible.

• Algorithmic mathematics provides a language for talking about program behavior.

• The lessons of program performance generalize to other computing resources.

(19)

Running Time

Running Time

• The running time depends on the input: an already

sorted sequence is easier to sort.

• Parameterize the running time by the size of the input, since short sequences are easier to sort than long ones.

(20)

Kinds of analyses

Kinds of analyses

Worst-case: (usually)

• T(n) = maximum time of algorithm on any input of size n.

Average-case: (sometimes)

• T(n) = expected time of algorithm over all inputs of size n.

• Need assumption of statistical distribution of inputs.

Best-case:

(21)

Machine-Machine-

I

I

ndependent time

ndependent time

The RAM Model

Machine independent algorithm design depends on a

hypothetical computer called Random Acces Machine (RAM).

Assumptions:

• Each simple operation such as +, -, if ...etc takes exactly one time step.

• Loops and subroutines are not considered simple operations.

(22)

Machine-independent time

Machine-independent time

What is insertion sort’s worst-case time?

• It depends on the speed of our computer, • relative speed (on the same machine), • absolute speed (on different machines).

BIG IDEA:

• Ignore machine-dependent constants. • Look at growth of

(23)

Machine-independent time: An example

Machine-independent time: An example

A pseudocode for insertion sort ( INSERTION SORT ).

INSERTION-SORT(A)

1 for j  2 to length [A]

2 do key A[ j]

3  Insert A[j] into the sortted sequence A[1,..., j-1]. 4 i j – 1

5 while i > 0 and A[i] > key

(24)

Analysis of INSERTION-SORT(contd.)

Analysis of INSERTION-SORT(contd.)

(25)

Analysis of INSERTION-SORT(contd.)

Analysis of INSERTION-SORT(contd.)

)

1

(

)

1

(

)

1

(

)

(

2 6 2

5 4

2

1

 

n

j j n

j j

t

c

t

c

n

c

n

c

c

n

T

).

1

(

)

1

(

8

2

7

n

c

t

c

n

j j

(26)

Analysis of INSERTION-SORT(contd.)

Analysis of INSERTION-SORT(contd.)

The best case: The array is already sorted. (tj =1 for j=2,3, ...,n)

)

1

(

)

1

(

)

1

(

)

1

(

)

(

n

c

1

n

c

2

n

c

4

n

c

5

n

c

8

n

T

).

(

)

(

c

1

c

2

c

4

c

5

c

8

n

c

2

c

4

c

5

c

8

(27)

Analysis of INSERTION-SORT(contd.)

Analysis of INSERTION-SORT(contd.)

•The worst case: The array is reverse sorted (tj =j for j=2,3, ...,n).

)

1

2

/

)

1

(

(

)

1

(

)

(

n

c

1

n

c

2

n

c

5

n

n

T

)

1

(

)

2

/

)

1

(

(

)

2

/

)

1

(

(

7 8

6

c

n

n

c

n

n

c

n

n c c c c c c c n c c

c / 2 / 2 / 2) ( / 2 / 2 / 2 )

( 2 1 2 4 5 6 7 8

7 6

5         

2

)

1

(

1

n

n

j

n j

c

bn

an

n

(28)

Growth of Functions

Growth of Functions

Although we can sometimes determine the exact

running time of an algorithm, the extra precision is not usually worth the effort of computing it.

(29)

Asymptotic Notation

Asymptotic Notation

The notation we use to describe the asymptotic running time of an algorithm are defined in terms of functions

whose domains are the set of natural numbers

0

,

1

,

2

,

...

(30)

O-notation

O-notation

• For a given function , we denote by the set of functions

• We use O-notation to give an asymptotic upper bound of a function, to within a constant factor.

• means that there existes some constant c s.t. is always for large enough n.

)

(n

g

O(g(n))

   

 

 

 

0

0

all for )

( )

( 0

s.t. and

constants positive

exist there

: ) ( ))

( (

n n n

cg n

f

n c

n f n

g O

)) ( ( )

(n O g n

f

) (n cg

(31)

Ω

Ω

-

-

Omega

Omega

notation

notation

• For a given function , we denote by the set of functions

• We use Ω-notation to give an asymptotic lower bound on a function, to within a constant factor.

• means that there exists some constant c s.t.

is always for large enough n.

)

(

n

g

(

g

(

n

))

   

 

 

 

0

0

all for )

( )

( 0

s.t. and

constants positive

exist there

: ) ( ))

( (

n n

n f n

cg

n c

n f n

g

)) ( ( )

(n g n

f   ) (n

(32)

--

Theta

Theta

notation

notation

• For a given function , we denote by the set of functions

• A function belongs to the set if there exist positive constants and such that it can be

“sand- wiched” between and or sufficienly large n.

• means that there exists some constant c1 and c2 s.t. for large enough n.

)

(n

g

(g(n))

            0 2 1 0 2 1 all for ) ( ) ( ) ( c 0 s.t. and , , constants positive exist there : ) ( )) ( ( n n n g c n f n g n c c n f n g

)

(

n

f

(g(n))

1

c

c

2

)

(

1

g

n

c

c2g(n)

Θ

)) ( ( )

(n g n

f  

) ( ) ( ) ( 2

1g n f n c g n

(33)

Asymptotic notation

Asymptotic notation

(34)

2 2 2

2

1

3

2

1

n

c

n

n

n

c

2

1

3

2

1

c

n

c

Example 1.

Example 1.

Show that

We must find

c

1

and

c

2

such that

Dividing bothsides by

n

2

yields

For

)

(

3

2

1

)

(

n

n

2

n

n

2

f

)

(

3

2

1

,

7

2 2

0

n

n

n

(35)

Theorem

Theorem

• For any two functions and , we have

if and only if

)

(

n

g

))

(

(

)

(

n

g

n

f

)

(

n

f

)).

(

(

)

(

and

))

(

(

)

(

n

O

g

n

f

n

g

n

(36)

Because :

)

2

(

5

2

2

3

n

n

n

Example 2.

Example 2.

)

2

(

5

2

2

3

)

(

n

n

n

n

f

)

2

(

5

2

2

(37)

Example 3.

Example 3.

6

100

3

3

,

3

for

since

)

(

6

100

(38)

Example 3.

Example 3.

3 when

6 100

3 ,

1 for

since )

( 6

100 3

6 100

3 3

, 3 for

since )

( 6

100 3

2 3

3 2

2 2

2 2

 

 

 

 

 

 

  

n n

n n

c n

O n

n

n n

n c

n O n

(39)
(40)
(41)
(42)
(43)
(44)
(45)
(46)

Standard notations and common functions

Standard notations and common functions

• Floors and ceilings

 

 

1

1

x

x

x

x

(47)

Standard notations and common functions

Standard notations and common functions

• Logarithms:

)

lg(lg

lg

lg

)

(log

log

log

ln

log

lg

2

n

n

n

n

n

n

n

n

k k

e

(48)

Standard notations and common functions

Standard notations and common functions

• Logarithms:

For all real

a

>0,

b

>0,

c

>0, and

n

b

a

a

a

n

a

b

a

ab

b

a

c c b

b n

b

c c

c

a

b

log

log

log

log

log

log

log

)

(

log

log

(49)

Standard notations and common functions

Standard notations and common functions

• Logarithms:

b

a

c

a

a

a

a b

a c

b b

b b

log

1

log

log

)

/

1

(

log

log log

(50)

Standard notations and common functions

Standard notations and common functions

• Factorials

For the Stirling approximation:





n

e

n

n

n

n

1

1

2

!

0

n

)

lg

(

)

!

lg(

)

2

(

!

)

(

!

n

n

n

n

n

o

n

n n

References

Related documents

more than four additional runs were required, they were needed for the 2 7-3 design, which is intuitive as this design has one more factor than the 2 6-2 design

Imtech is one of the strongest players in the global marine market (revenue: 560 million euro, number of employees: 2,308) and an independent full-service supplier with

This demonstrates that the received power estimation done at the ST by listening to the pilot based channel, thereby acquiring the channel knowl- edge and performing the power

The findings contained the themes of types of animals used in AAT, therapist’s description of AAT, different diagnosis therapists work with, unique benefits provided to children,

This conclusion is further supported by the following observations: (i) constitutive expression of stdE and stdF in a Dam + background represses SPI-1 expression (Figure 5); (ii)

fresh properties of cement mortar using a large proportion of a nitrite-based accelerator and two types of high-range.. water-reducing agents, in a low-temperature

The threshold into the stadium is through a series of layers which delaminate from the geometry of the field to the geometry of the city and creates zones of separation,