CSCE 310: Data Structures - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

CSCE 310: Data Structures

Description:

EXAMPLE: tower of hanoi. Problem: Given three pegs (A, B, C) and n disks ... EXAMPLE: tower of hanoi. Step 1: Solve simple case when n =1? Just ... hanoi ... – PowerPoint PPT presentation

Number of Views:383
Avg rating:3.0/5.0
Slides: 32
Provided by: cse92
Category:
Tags: csce | data | hanoi | structures

less

Transcript and Presenter's Notes

Title: CSCE 310: Data Structures


1
CSCE 310 Data Structures Algorithms
  • Recursive Algorithm Analysis
  • Dr. Ying Lu
  • ylu_at_cse.unl.edu

September 8, 2010
2
CSCE 310 Data Structures Algorithms
  • Giving credit where credit is due
  • Most of the lecture notes are based on the slides
    from the Textbooks companion website
  • http//www.aw-bc.com/info/levitin
  • Several slides are from Hsu Wen Jing of the
    National University of Singapore
  • I have modified them and added new slides

3
Example a recursive algorithm
  • Algorithm
  • if n0 then F(n) 1
  • else F(n) F(n-1) n
  • return F(n)

4
Example another recursive algorithm
Algorithm F(n) // Compute the nth Fibonacci
number recursively //Input A nonnegative integer
n //Output the nth Fibonacci number if n ? 1
return n else return F(n-1) F(n-2)
5
Example recursive evaluation of n !
  • Definition n ! 12(n-1)n
  • Recursive definition of n!
  • Algorithm
  • if n0 then F(n) 1
  • else F(n) F(n-1) n
  • return F(n)
  • M(n) number of multiplications to compute n!
  • Could we establish a recurrence relation for
    deriving M(n)?

6
Example recursive evaluation of n !
  • M(n) M(n-1) 1 for n gt 0
  • A recurrence relation is an equation or
    inequality that describes a function in terms of
    its value on smaller inputs
  • Explicit formula for the sequence (e.g. M(n)) in
    terms of n only

7
Example recursive evaluation of n !
  • Definition n ! 12(n-1)n
  • Recursive definition of n!
  • Algorithm
  • if n0 then F(n) 1
  • else F(n) F(n-1) n
  • return F(n)
  • M(n) M(n-1) 1
  • Initial Condition M(0) ?

8
Example recursive evaluation of n !
  • Recursive definition of n!
  • Algorithm
  • if n0 then F(n) 1
  • else F(n) F(n-1) n
  • return F(n)
  • M(n) M(n-1) 1
  • Initial condition M(0) 0
  • Explicit formula for M(n)?

9
Time efficiency of recursive algorithms
  • Steps in analysis of recursive algorithms
  • Decide on parameter n indicating input size
  • Identify algorithms basic operation
  • Determine worst, average, and best case for
    inputs of size n
  • Set up a recurrence relation and initial
    condition(s) for C(n)-the number of times the
    basic operation will be executed for an input of
    size n
  • Solve the recurrence to obtain a closed form or
    estimate the order of magnitude of the solution
    (see Appendix B)

10
EXAMPLE tower of hanoi
  • Problem
  • Given three pegs (A, B, C) and n disks of
    different sizes
  • Initially, all the disks are on peg A in order of
    size, the largest on the bottom and the smallest
    on top
  • The goal is to move all the disks to peg C using
    peg B as an auxiliary
  • Only 1 disk can be moved at a time, and a larger
    disk cannot be placed on top of a smaller one

B
n disks
A
C
11
EXAMPLE tower of hanoi
  • Step 1 Solve simple case when nlt1?
  • Just trivial

B
B
A
C
A
C
Move(A, C)
12
EXAMPLE tower of hanoi
  • Step 2 Assume that a smaller instance can be
    solved, i.e. can move n-1 disks. Then?

B
B
A
C
A
C
B
A
C
13
EXAMPLE tower of hanoi
B
B
A
C
A
C
B
A
C
B
A
C
14
EXAMPLE tower of hanoi
B
B
A
C
A
C
B
TOWER(n, A, B, C)
A
C
B
A
C
15
EXAMPLE tower of hanoi
B
TOWER(n-1, A, C, B)
B
A
C
A
C
B
Move(A, C)
TOWER(n, A, B, C)
A
C
TOWER(n-1, B, A, C)
B
A
C
16
EXAMPLE tower of hanoi
TOWER(n, A, B, C)
if nlt1 return
TOWER(n-1, A, C, B)
Move(A, C)
TOWER(n-1, B, A, C)
17
EXAMPLE tower of hanoi
  • Algorithm analysis
  • Input size? Basic operation?

18
EXAMPLE tower of hanoi
  • Algorithm analysis
  • Do we need to differentiate best case, worst case
    average case for inputs of size n?

19
EXAMPLE tower of hanoi
  • Algorithm analysis
  • Set up a recurrence relation and initial
    condition(s) for C(n)

20
In-Class Exercise
  • P. 76 Problem 2.4.1 (c) solve this recurrence
    relation
  • x(n) x(n-1) n
  • P. 76 Problem 2.4.4 consider the following
    recursive algorithm
  • Algorithm Q(n)
  • // Input A positive integer n
  • If n 1 return 1
  • else return Q(n-1) 2 n 1
  • A. Set up a recurrence relation for this
    functions values and solve it to determine what
    this algorithm computes
  • B. Set up a recurrence relation for the number of
    multiplications made by this algorithm and solve
    it.
  • C. Set up a recurrence relation for the number of
    additions/subtractions made by this algorithm and
    solve it.

21
Example BinRec(n)
Algorithm BinRec(n) //Input A positive decimal
integer n //Output The number of binary digits
in ns binary representation if n 1 return
1 else return BinRec( ?n/2? ) 1
22
Smoothness rule
  • If T(n) ? ?(f(n))
  • for values of n that are powers of b, where b ?
    2,
  • then
  • T(n) ? ?(f(n))

23
Example BinRec(n)
Algorithm BinRec(n) //Input A positive decimal
integer n //Output The number of binary digits
in ns binary representation if n 1 return
1 else return BinRec( ?n/2? ) 1
24
Fibonacci numbers
  • The Fibonacci sequence
  • 0, 1, 1, 2, 3, 5, 8, 13, 21,
  • Fibonacci recurrence
  • F(n) F(n-1) F(n-2)
  • F(0) 0
  • F(1) 1

2nd order linear homogeneous recurrence relation
with constant coefficients
25
Solving linear homogeneous recurrence relations
with constant coefficients
  • Easy first 1st order LHRRCCs
  • C(n) a C(n -1) C(0) t
    Solution C(n) t an
  • Extrapolate to 2nd order
  • L(n) a L(n-1) b L(n-2)
    A solution? L(n) ?
  • Characteristic equation (quadratic)
  • Solve to obtain roots r1 and r2 (quadratic
    formula)
  • General solution to RR linear combination of r1n
    and r2n
  • Particular solution use initial conditions

26
Solving linear homogeneous recurrence relations
with constant coefficients
  • Easy first 1st order LHRRCCs
  • C(n) a C(n -1) C(0) t
    Solution C(n) t an
  • Extrapolate to 2nd order
  • L(n) a L(n-1) b L(n-2)
    A solution? L(n) ?
  • Characteristic equation (quadratic)
  • Solve to obtain roots r1 and r2 (quadratic
    formula)
  • General solution to RR linear combination of r1n
    and r2n
  • Particular solution use initial conditions
  • Explicit Formula for Fibonacci Number F(n)
    F(n-1) F(n-2)

27
Computing Fibonacci numbers
  • 1. Definition based recursive algorithm

Algorithm F(n) // Compute the nth Fibonacci
number recursively //Input A nonnegative integer
n //Output the nth Fibonacci number if n ? 1
return n else return F(n-1) F(n-2)
28
Computing Fibonacci numbers
  • 2. Nonrecursive brute-force algorithm

Algorithm Fib(n) // Compute the nth Fibonacci
number iteratively //Input A nonnegative integer
n //Output the nth Fibonacci number F0 ? 0
F1 ? 1 for i ? 2 to n do Fi ? Fi-1
Fi-2 return Fn
29
Computing Fibonacci numbers
3. Explicit formula algorithm
30
In-Class Exercises
  • Another example
  • A(n) 3A(n-1) 2A(n-2) A(0) 1 A(1) 3
  • P.83 2.5.4. Climbing stairs Find the number of
    different ways to climb an n-stair stair-case if
    each step is either one or two stairs. (For
    example, a 3-stair staircase can be climbed three
    ways 1-1-1, 1-2, and 2-1.)

31
Announcement
  • Reading List of this Week
  • Chapter 3
Write a Comment
User Comments (0)
About PowerShow.com