算法优化技巧与实践
1. 递归的权衡
当我们考虑使用递归实现函数时,需要权衡递归的优缺点。递归能让我们运用“神奇”的自上而下思维方式,但在处理大量数据时,递归可能并不适用。例如处理像 20000 这样的数字,递归可能无法高效完成任务。不过,这并非否定递归,而是要在每种情况下权衡每个算法的利弊。
2. 算法效率总结与练习
现在我们已经学会从时间和空间等多个角度衡量算法的效率,具备了分析能力来比较不同算法,并为自己的应用选择合适的方法。以下是一些关于空间复杂度的练习:
1. “Word Builder”算法的空间复杂度
function wordBuilder(array) {
let collection = [];
for(let i = 0; i < array.length; i++) {
for(let j = 0; j < array.length; j++) {
if (i !== j) {
collection.push(array[i] + array[j]);
}
}
}
return collection;
}
请描述该算法的空间复杂度(用大 O 表示)。
2. 数组反转函数的空间复杂度
func
超级会员免费看
订阅专栏 解锁全文
173万+

被折叠的 条评论
为什么被折叠?



