算法
文章平均质量分 55
常用算法代码与分析
小孟js
前端开发工程师,精通JavaScript,vue,欢迎给文章提bug。
展开
-
【js算法】js斐波那契数列的多种算法
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……从数列可以看出,从第三项开始,每一项都是前两项的和,f(n) = f(n-1) + f(n-2)那么用js怎么求斐波那契数列第n项的值呢?1.普通递归计算:function fibonacci(n){ if(n == 1||n == 2) retu原创 2022-03-11 11:31:13 · 6238 阅读 · 0 评论 -
【算法-排序】js归并排序
什么是归并排序?咱们先看一张图:归并排序的原理就是分治法,将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并(这句话摘自百度百科)。下边用自己的话讲一下:现在有一个数组,咱们先把他递归的两两拆分,就像一个二叉树一样,最后每个节点只有一个元素。从图中可以看到,最后的子节点都是一个(图中第四行)。那么此时咱们把兄弟节点相比较,把小的放前边,大的放后边,最后变成(图中的第五行)。这就是合并的第一步。那么下一次每个节点里边都有俩元素原创 2022-03-04 18:13:11 · 720 阅读 · 0 评论 -
【算法-排序】js插入排序
什么是插入排序?如果我们现在有一个数组arr,从下标为i = 1开始循环,取出key = arr[i],然后让他与前边的元素逐一对比,只要前边的元素比key大,那么就让前边的元素的下标加1,直到找到一个比key小的元素,把key插入到在上一次修改下标的元素的位置,一轮插入结束,进行下一次循环,i++。看图:下边就是插入排序的代码,为了看官能够直接执行,我写成了一个html,各位复制到html直接执行就可以,上图也是这个html生成的。<!DOCTYPE html><html l原创 2022-03-03 11:55:04 · 383 阅读 · 0 评论