Presentation is loading. Please wait.

Presentation is loading. Please wait.

Recursive and Iterative Algorithms

Similar presentations


Presentation on theme: "Recursive and Iterative Algorithms"— Presentation transcript:

1 Recursive and Iterative Algorithms
1/17/2019 Debasis Mitra, FIT

2 What does the following algorithm do?
Algorithm what(n) (1) x:=1; y:=1; z:=0; (2) for int I:=1 to n-2 do (3) z := x +y; (4) y := x; (5) x := z; end for; (6) return z; End algorithm. 1/17/2019 Debasis Mitra, FIT

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. 1/17/2019 Debasis Mitra, FIT

4 Actually the recursion is working like:
Algorithm now-what(n) (1) create stack; (2) if n>1 then push(stack, n); (3) int temp := 0; (4) while stack not empty do (5) int x := pop(stack); (6) if x > 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. 1/17/2019 Debasis Mitra, FIT

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(2) n-w(1) 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 1/17/2019 Debasis Mitra, FIT

6 Binary search recursive algorithm
Algorithm bin-search(sorted array A, index f, index l, key) (1) If f = = l (2) If key = = A[f] then return f else return failure; else (3) int mid = (f + l)/2; (4) if key > A[mid] (5) return bin-search(A, mid+1, l); (6) return bin-search(A, f, mid); end if; End algorithm. Driver: bin-search (A, 1, n). 1/17/2019 Debasis Mitra, FIT

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 = = A[f] then return f (8) else return failure; else (9) int mid := (f+l)/2; (10) if key > A[mid] then (11) push (stack, (mid+1, l)); (12) push (stack, (f, mid)); end if; end while; End algorithm. 1/17/2019 Debasis Mitra, FIT

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 > A[mid] then (11) f := mid +1; else (12) l := mid; end while; (13)If key = = A[f] then return f (14) else return failure; End algorithm. 1/17/2019 Debasis Mitra, FIT


Download ppt "Recursive and Iterative Algorithms"

Similar presentations


Ads by Google