初识算法。
时间复杂度
O(1) O(logn) O(n) O(n^2) O(2^n) 理论上运行时间依次增加,运行速度越来越慢。
编写一个将数字数组作为输入值并计算这些是数字之和的算法。
要求:判断该算法的时间复杂度并验证它是否为最佳方案。
const arr = [1,2,3,4,5]
function sumArr(arr){
let v = null;
arr.map(l=>{
v+= l
})
return v
}
sumArr(arr)
如何返回斐波那契数列第n个元素。
时间复杂度为 O(n) 线性时间复杂度
function fib(n){
const resNum = [1,1]
for (let index = 2; index < n + 1; index++) {
resNum.push(resNum[index-2] + resNum[index-1]);
}
return resNum[n]
}
console.log( fib(5))
判断质数。
大于1的自然数中除了1和它本身不能被其他自然数整除(除0以为)
function isPrime(n){
var isTrue = true
for(i = 2;i < n; i ++){
if(n % i === 0){
isTrue = false;
break
}
}
return isTrue
}
console.log(isPrime(5))