to ensure a fair selection you all get the same test. you ...bytes.usc.edu › files › cs103 ›...
TRANSCRIPT
http://learninmind.weebly.com/teaching-philosophy.html
Toensureafairselectionyouallgetthesametest.Youmustallclimbthattree.
Recursion?
“Recursion occurswhenathingisdefinedintermsofitselforofitstype.” https://en.wikipedia.org/
http://blog.haskellformac.com/blog/fractals-recursion-in-pictures
ComputerScienceRecursionRecursion occurswhenafunctionbeingdefinedisappliedwithinitsowndefinition(callsitself).
PropertiesofRecursiveBehavior:1.Basecase—aterminatingscenariothatdoesnotuserecursiontoproduceananswer2.Asetofrulesthatreduceallothercasestowardthebasecase
https://en.wikipedia.org/
FactorialFunction?n!=1*2*3*…*(n-1)*n
FactorialFunction(Iterative)n!=1*2*3*…*(n-1)*n
FactorialFunctionRecursive?
FactorialFunctionRecursive?
http://netlab.cs.ucla.edu/~schoi/cs32/
FactorialFunctionRecursiveFactorialFunctionRecursive
AddBaseCase!
10
FactorialTrace-throughint fact(int n){if (n == 0)
return (1);
return(n * fact(n-1));}
int fact(int n){if (n == 0)
return (1);
return(n * fact(n-1));}
int fact(int n){if (n == 0)
return (1);
return(n * fact(n-1));}
int fact(int n){if (n == 0)
return (1);
return(n * fact(n-1));}
int main(){int result;result = fact(3);cout << result;
}
result
3==0
2
n 33
2==0
1
n 2
1==0
0
n 10==0
1
n 0
1 1
2 2
6 6
6
http://careynachenberg.weebly.com/careys-slides.html
FibonacciNumbers
http://penitenciasludicas.blogspot.com/
Pairsofrabbits
FibonacciSequence
0,1,1,2,3,5,8,13,21,34,55,…
F(0)=0F(1)=1F(n)=F(n-1)+F(n-2),n>=2
FibonacciRecursiveFunction
TwoRecursiveCalls
RecursiononArray
Returnsumofallitemsinanarray
http://netlab.cs.ucla.edu/~schoi/cs32/
ArraySum
Returnsumofallitemsinanarray
int sumArr(int arr[],int n){
if(n==0)return0;if(n==1)returnarr[0];int first= sumArr(arr,n/2);int secnd =sumArr(arr+n/2,n-n/2);returnfirst+secnd;
}
http://careynachenberg.weebly.com/careys-slides.html
18
int main(){
const int n=3;int nums[n]={10,20,42};
cout <<sumArr(nums ,n);}
Array-summerTrace-through
int sumArr(int arr[],int n){
if(n==0)return0;if(n==1)returnarr[0];int first= sumArr(arr,n/2);int secnd =sumArr(arr+n/2,n-n/2);returnfirst+secnd;
}
int sumArr(int arr[],int n){
if(n==0)return0;if(n==1)returnarr[0];int first= sumArr(arr,n/2);int secnd =sumArr(arr+n/2,n-n/2);returnfirst+secnd;
}
110
10
20 42 2
int sumArr(int arr[],int n){
if(n==0)return0;if(n==1)returnarr[0];int first= sumArr(arr,n/2);int secnd =sumArr(arr+n/2,n-n/2);returnfirst+secnd;
}120
20
142
42
62
72
10 20 42nums 10 20 42 3
http://careynachenberg.weebly.com/careys-slides.html
http://netlab.cs.ucla.edu/~schoi/cs32/