CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego
description
Transcript of CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego
![Page 1: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/1.jpg)
1
CSE 20 Lecture 11Function, Recursion & Analysis
CK ChengUC San Diego
![Page 2: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/2.jpg)
Motivation
• Verification• Complexity of the execution
2
Input x Output yy= Function (x)
Recursion
![Page 3: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/3.jpg)
OUTLINE
• Definition of Function• Formulation of Recursive Functions• Induction (Verification)• Counting (Analysis)
3
![Page 4: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/4.jpg)
4
I. Definition• A function f: A → B maps elements in
domain A to codomain B such that for each a ϵ A, f(a) is exact one element in B.
• f: A → B A: DomainB: Codomainf(A): range or image of function f(A) B⊂
![Page 5: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/5.jpg)
5
Examples
(2) f(x)
(1) f(x)=x2, x ∈ℝ (3) f(x) NOT a function
x
f(x)
f(x)
x
![Page 6: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/6.jpg)
6
(5) NOT a function
Examples(4) Mapping from x to y
When domain A is an integer set Z, we may denote f(x) as fx, ie. f0, f1, f2.
![Page 7: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/7.jpg)
Function: iClicker
7
Let X={1,2,3,4}. Determine which of the following relation is a functionA. f={(1,3), (2,4), (3,3)}B. g={(1,2), (3,4), (1,4), (2,3)}C. h={(1,4), (2,3), (3,2), (4,1)}D. w={(1,1), (2,2), (3,3), (4,4)}E. Two of the above.
![Page 8: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/8.jpg)
Formulation of Recursive Functions
8
1.Overview of Recursive Functions2.Examples
1.Fibonacci Sequence2.The Tower of Hanoi3.Merge Sort
![Page 9: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/9.jpg)
Formulation of Recursive Function:overview
9
1. Recursion: A function calls itself.2. Reduction: For each call, the
problem size becomes smaller.3. Base Case: The smallest sized
problem.• The derivation of the base case
is defined.
![Page 10: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/10.jpg)
Recursive Functions: iClicker
10
A. We can convert a recursive function into a program with iterative loops.B. Recursive function takes much less lines of codes for some problems.C. Recursive function always runs slower due to its complexity.D. Two of the aboveE. None of the above.
![Page 11: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/11.jpg)
11
Fibonacci Sequence: Problem
Fibonacci sequence: Start with a pair of rabbits. For every month, each pair bears a new pair, which becomes productive from their second month.
Calculate the number of new pairs in month i, i≥0.
![Page 12: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/12.jpg)
12
Fibonacci Sequence: Algorithm• Algorithm array n(i) (# new born pairs), a(i) (# adult pairs)Init n(0)=0, a(0)=1For i=1, i=i+1, i< #MaxIter{ n(i)=a(i-1)
a(i)=a(i-1)+n(i-1)}Index: 0 1 2 3 4 5 6 … a(i): 1 1 2 3 5 8 13 …n(i): 0 1 1 2 3 5 8 …
![Page 13: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/13.jpg)
13
Fibonacci Sequence: iClicker
The following is Fibonacci sequence:• A. 0 1 1 2 3 5 8 13 21 34• B. 0 1 1 2 3 5 8 13 18 31• C. 0 1 1 2 3 5 8 13 18 36• D. 0 1 1 2 3 5 8 13 17 30• E. None of the above
![Page 14: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/14.jpg)
14
Fibonacci Sequence: Recursion
Function Fibonacci(n)If n< 2, return nElse return(Fibonacci(n-1)+Fibonacci(n-2))
Index: 0 1 2 3 4 5 6 … F(i): 0 1 1 2 3 5 8 …
![Page 15: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/15.jpg)
15
Fibonacci Sequence: Complexity
• Fibonacci Sequence
0 1 n n-1 n-2f =0, f =1, f =f +f 1n
Index 0 1 2 3 4 5 6Sequence 0 1 1 2 3 5 8
![Page 16: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/16.jpg)
16
Fibonacci sequence: Golden Ratio
• Derivation:
• Let• We have:
1 5
2nX
1
n
nn f
fX
2
11
2
1
21
1
111
n
nn
n
n
nn
n
n
fff
f
f
ff
f
f
nX X
XX 11
![Page 17: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/17.jpg)
17
Fibonacci Sequence and the golden ratio
0 1 2 3 4 5 6 7 8 9
0 1 1 2 3 5 8 13 21 34
1 2 1.5 1.6 1.61 1.625 1.615 1.619
1n
n
f
f
![Page 18: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/18.jpg)
Tower of Hanoi: Problem• Setting: Three poles and a stack of disks on the
leftmost pole in order of size with the largest at bottom.
• Obj: Move the entire pile of disks to the rightmost pole.
• Rules: – Each move involves only one top disk on one of
three poles.– The top disk may be moved to either of the other
two poles.– A disk must never be on top of a smaller disk.
18
![Page 19: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/19.jpg)
Tower of Hanoi: Problem
Hanoi (4, 1, 3): Move 4 disks from pole 1 to pole 3
19
![Page 20: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/20.jpg)
Tower of Hanoi: FunctionSetting: n, A=1, B=3 (move n disks from pole1 to
pole 3)Output: a sequence of moves (a, b)Function Hanoi(n, A, B) If n=1, return (A, B), Else { C <= other pole(not A nor B)
return Hanoi(n-1, A, C), (A, B), Hanoi(n-1, C, B) }
20
![Page 21: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/21.jpg)
Tower of Hanoi: ExampleFunction Hanoi(n, A, B)If n=1, return (A, B), Else { C<= other pole(not A nor B) return Hanoi(n-1, A, C), (A, B), Hanoi(n-1, C, B)}Example: Hanoi(2, 1, 3)
=Hanoi(1, 1, 2), (1, 3), Hanoi(1, 2, 3)=(1,2), (1,3), (2,3)
21
![Page 22: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/22.jpg)
Tower of Hanoi: Complexity
Number of moves for Hanoi(n, A, B)• F(1)= 1• F(n) = 2F(n-1) + 1
22
n 1 2 3 4 5 6 7 8 9 10
F(n) 1 3 7 15 31 63 127 255 511 1023
![Page 23: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/23.jpg)
Merge Sort: Problem
• Given an array of numbers, sort the numbers from small to large.
23
id 0 1 2 3 4 5 6 7items 5 2 4 7 1 3 2 6
![Page 24: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/24.jpg)
Merge Sort: Function
Initial: Array A from p=0 to r=n-1Function Merge-Sort(A, p, r)If p < r Then { q= Floor((p+r)/2)
Merge-Sort(A, p, q)Merge-Sort(A, q+1, r)Merge(A, p, q, r)
}24
![Page 25: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/25.jpg)
Merge Sort: FunctionFunction Merge(A, p, q, r)Create and copy arrays L=A[p, q], R=A[q+1, r]Set initial i=j=0, L[q-p]=R[r-q]=inffor k=p to r{ if L[i]≤R[j]
then A[k]=L[i]i=i+1
else A[k]=R[j]j=j+1
}25
![Page 26: CSE 20 Lecture 11 Function, Recursion & Analysis CK Cheng UC San Diego](https://reader036.fdocuments.net/reader036/viewer/2022062422/56813e0f550346895da7edfd/html5/thumbnails/26.jpg)
Merge Sort: Complexity
Complexity: Let F(n) be the number of L[i]≤R[j] comparisons in Merge-Sort(A, 0, 2n-1).
• F(0)= 0• F(1)= 2• F(2)= 2F(1)+22
• F(n)= 2F(n-1)+2n
26