Slide 15
Slide 15 text
A pseudo-code example
Fibonacci Sequence
0, 1, 1, 2, 3, 5, 8, 13, 21, 34 … etc
F(n) = F(n-1) + F(n-2)
Tail Recursivity
● Back to being efficient 👍
● Still easy to read, but less 👎
O(n) time / O(1) space
function fibonacci(n) {
function fiboHelper(n, result, next) {
if (n == 0) result
else return fiboHelper(n - 1, next, result + next)
}
return fiboHelper(n, 0, 1)
}
● Efficiency isn’t 100% guaranteed 👎
function fibonacci(n) {
function fiboHelper(n, result, next) {
if (n == 0) result
else return fiboHelper(n - 1, next, result + next)
}
return fiboHelper(n, 0, 1)
}
function fibonacci(n) {
function fiboHelper(n, result, next) {
if (n == 0) result
else return fiboHelper(n - 1, next, result + next)
}
return fiboHelper(n, 0, 1)
}
function fibonacci(n) {
function fiboHelper(n, result, next) {
if (n == 0) result
else return fiboHelper(n - 1, next, result + next)
}
return fiboHelper(n, 0, 1)
}
function fibonacci(n) {
function fiboHelper(n, result, next) {
if (n == 0) result
else return fiboHelper(n - 1, next, result + next)
}
return fiboHelper(n, 0, 1)
}
function fibonacci(n) {
function fiboHelper(n, result, next) {
if (n == 0) result
else return fiboHelper(n - 1, next, result + next)
}
return fiboHelper(n, 0, 1)
}
function fibonacci(n) {
function fiboHelper(n, result, next) {
if (n == 0) result
else return fiboHelper(n - 1, next, result + next)
}
return fiboHelper(n, 0, 1)
}
(…)