Javascript 迭代、递推、穷举、递归常用算法实例讲解
在Javascript编程中,经常需要使用迭代、递推、穷举、递归等算法来解决问题。下面将分别介绍这几种算法,并结合示例说明。
迭代算法
迭代算法顾名思义就是一种重复执行某种操作的算法,通常采用循环结构实现。迭代算法的最大优点就是效率高,但需要注意边界条件的控制。
下面是一个求阶乘的迭代算法示例:
function factorial(n) {
let result = 1;
for (let i = 1; i <= n; i++) {
result *= i;
}
return result;
}
console.log(factorial(5)); // 输出120
递推算法
递推算法是一种从已知项反推出未知项的算法,递推算法常常需要求出初始值和递推公式,一般使用循环结构实现。
下面是一个求斐波那契数列的递推算法示例:
function fibonacci(n) {
let result = [0, 1];
for (let i = 2; i <= n; i++) {
result[i] = result[i - 1] + result[i - 2];
}
return result[n];
}
console.log(fibonacci(5)); // 输出5
穷举算法
穷举算法顾名思义就是列举所有可能的解并依次验证,通常采用嵌套循环来实现。穷举算法适用于问题的解空间比较小的情况。
下面是一个求三个数之和等于指定值的穷举算法示例:
function tripleSum(nums, target) {
const result = [];
for (let i = 0; i < nums.length - 2; i++) {
for (let j = i + 1; j < nums.length - 1; j++) {
for (let k = j + 1; k < nums.length; k++) {
if (nums[i] + nums[j] + nums[k] === target) {
result.push([nums[i], nums[j], nums[k]]);
}
}
}
}
return result;
}
console.log(tripleSum([1, 2, 3, 4, 5], 8)); // 输出[[1, 2, 5], [1, 3, 4], [2, 3, 3]]
递归算法
递归算法则是一种将问题分解成小问题并递归求解的算法,递归函数需要符合两个条件:结束条件和递归条件。
下面是一个求阶乘的递归算法示例:
function factorial(n) {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}
console.log(factorial(5)); // 输出120
下面是一个求斐波那契数列的递归算法示例:
function fibonacci(n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
console.log(fibonacci(5)); // 输出5
以上是Javascript迭代、递推、穷举、递归常用算法实例的讲解,根据不同的算法问题场景,选择合适的算法是非常重要的。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript迭代、递推、穷举、递归常用算法实例讲解 - Python技术站