Recursive and Iterative Algorithms - PowerPoint PPT Presentation

About This Presentation
Title:

Recursive and Iterative Algorithms

Description:

(5) x := z; end for; (6) return z; End algorithm. 11/8/09. Debasis Mitra, FIT. 3. Now ... (1) create stack; (2) if n 1 then push(stack, n); (3) int temp := 0; ... – PowerPoint PPT presentation

Number of Views:218
Avg rating:3.0/5.0
Slides: 9
Provided by: csF8
Learn more at: https://cs.fit.edu
Category:

less

Transcript and Presenter's Notes

Title: Recursive and Iterative Algorithms


1
Recursive and Iterative Algorithms
2
What does the following algorithm do?
  • Algorithm what(n)
  • (1) x1 y1 z0
  • (2) for int I1 to n-2 do
  • (3) z x y
  • (4) y x
  • (5) x z
  • end for
  • (6) return z
  • End algorithm.

3
Now this Algorithm?
  • Algorithm now-what(n)
  • (1) if n 1 or 0 then return 1
  • (2) else
  • (3) return now-what(n-1) now-what(n-2)
  • (4) end if
  • End algorithm.

4
Actually the recursion is working like
  • Algorithm now-what(n)
  • (1) create stack
  • (2) if ngt1 then push(stack, n)
  • (3) int temp 0
  • (4) while stack not empty do
  • (5) int x pop(stack)
  • (6) if x gt 1 then
  • (7) push (stack, x-1)
  • (8) push (stack, x-2)
  • else
  • (9) temp temp 1
  • end if
  • end while
  • (10) return temp
  • End algorithm.

5
Recursion tree for recursive Fibonacci number
calculation sample
n-w(4)
n-w(2)
n-w(3)
n-w(0)
n-w(1)
n-w(1)
n-w(2)
n-w(1)
n-w(0)
n-w(4) n-w(1) n-w(0) n-w(1)
n-w(1) n-w(0) 5
6
Binary search recursive algorithm
  • Algorithm bin-search(sorted array A, index f,
    index l, key)
  • (1) If f l
  • (2) If key Af then return f
  • else return failure
  • else
  • (3) int mid (f l)/2
  • (4) if key gt Amid
  • (5) return bin-search(A, mid1, l)
  • else
  • (6) return bin-search(A, f, mid)
  • end if
  • end if
  • End algorithm.
  • Driver bin-search (A, 1, n).

7
Binary Search iterative algorithm stack-based
  • Algorithm bin-search(sorted array A, key)
  • (1) create stack int f 1 int l
    size_of(A)
  • (3)push(stack, (f, l))
  • (4) while stack not empty do
  • (5) (f, l) pop(stack)
  • (6) if f l then
  • (7) if key Af then return f
  • (8) else return failure
  • else
  • (9) int mid (fl)/2
  • (10) if key gt Amid then
  • (11) push (stack, (mid1, l))
  • else
  • (12) push (stack, (f, mid))
  • end if
  • end while
  • End algorithm.

8
Binary Search iterative algorithm non-stack
based
  • Algorithm bin-search(sorted array A, key)
  • (1) int f 1 int l size_of(A)
  • (2) While f ? l do
  • (3) int mid (f l)/2
  • (4) if key gt Amid then
  • (11) f mid 1
  • else
  • (12) l mid
  • end while
  • (13)If key Af then return f
  • (14) else return failure
  • End algorithm.
Write a Comment
User Comments (0)
About PowerShow.com