算法
文章平均质量分 73
吴迪98
喜欢敲代码的吴小迪~
展开
-
链表找头节点并判断链表环状,以及节点不在链表内等异常情况
问题:寻找链表的头节点,每个节点,有 id 和 nextId 两个属性,nextId 表示指向节点 id。现在请实现一个办法寻找该链表的头节点。PS. 考虑一下链表环状,以及节点不在链表内等异常情况,出现异常时,打印异常消息即可。const findFirstNode = (nodeList) => { // 存放有可能是链头的数组 const startArr = []; // 存放有可能是链尾的数组 const endArr = []; // 循环每个节点并原创 2021-03-29 11:18:02 · 518 阅读 · 0 评论 -
react底层原理解析之fiber
Fiber的特点/作用Fiber能够使得动画、布局和页面交互变得更加的流畅。一:Fiber的概念 React Fiber是react执行渲染时的一种新的调度策略,JavaScript是单线程的,一旦组件开始更新,主线程就一直被React控制,这个时候如果再次执行交互操作,就会卡顿。 React Fiber就是通过对象记录组件上需要做或者已经完成的更新,一个组件可以对应多个Fiber。...原创 2019-04-20 22:59:29 · 47596 阅读 · 0 评论 -
React底层原理解析之diff算法
React的diff算法是在哪里进行计算的?diff算法是在render里面进行计算的。React的diff算法与传统的diff算法的区别:传统的diff算法:计算一棵树形结构转换为另一颗树形结构需要最少步骤,如果使用传统的diff算法通过循环递归遍历节点进行对比,其复杂度要达到O(n^3),其中n是节点总数,效率十分低下,假设我们要展示1000个节点,那么我们就要依次执行上十亿次的比较。...原创 2019-04-20 20:27:54 · 39406 阅读 · 0 评论 -
JS常见算法小总结
今天与大家一起来测试一下常用算法的性能解析:首先我们创建一个含有十万个数组的数组用来测试:let array = [];for (let i = 0; i < 100000; i++) { array.push(i)}接下来我们一起分析各个算法的性能:首先来测试冒泡排序:function bubbleSort(arr) { for(let i = 0; i < a...原创 2019-05-14 16:23:21 · 44110 阅读 · 4 评论