浅显Js算法思路个人整理
一个人写写看看,若有错误不足,望海涵斧正
递归函数的解题思路
// 递归函数的作用有些类似于遍历,通常用于实现重复性规律性的需求
// 递归函数要求有一个终点,即执行至符合某一条件后不再继续递归,而是返回一个固有的结果
// 如果递归的终点不存在或者是无法达到时,会出现栈溢出的报错
// 以下为递归函数实现,数字累加(最简单的递归)
function fb (num) {
if (num > 1){
return num + fb (--num);
} else {
return 1;// 当等于1时,找到终点返回终点的结果
}
}
遍历算法的优良比较
// 遍历算法的优良取决于两个方面,一个是遍历方式的内部结构是否更为合理简单,再一就是遍历算法的时间复杂度
// 常见的遍历方式,for 、for...in 、 forEach 、 for...of 、 map
// 从性能上看,for最差,其余的遍历方式性能无较大差异,根据不同的使用场景选择
// 遍历的时间复杂性,简而言之,是计算每条程序语言的执行次数的最坏情况,即最多的执行次数情况
// 就目前看,遍历和递归的思路相近,可以递归实现的,应该都可以遍历实现,遍历在性能上会优于递归,但是递归节省代码,结构清晰,更易于理解
解决常规算法题的另外一种思路----类型转换
(未待完续,犯懒了,下次再努力一下)