- 博客(15)
- 收藏
- 关注
原创 (递归)fibonacci数列
function fibonacci(n){ if(n<1) return 0; if(n<=2) return 1; return fibonacci(n-1)+fibonacci(n-2) } //n为层数 function fn(n){ ...
2020-12-29 09:21:39 314
原创 循环队列-击鼓传花游戏
击鼓的时候传❀,到时间手上拿着花的淘汰,最后剩下的人是胜者。 function hotPotato(elementsList,num){ const queue = new Queue(); const eliminatedList = []; for(let i=1;i<elementsList.l...
2020-12-29 06:52:27 259
原创 回文检查器(利用双端队列)
function palindromeChecker(aString){ if(aString === undefined || aString ===null || (aString !==null && aString.length === 0)){ return false }...
2020-12-29 04:53:50 180
原创 input手写实现一个双向绑定
let test = {} Object.defineProperty(test,'value',{ get(){ return test._value; }, set(newValue){ test._value = newVa...
2020-12-28 22:17:39 709
原创 10w数组求最大值不卡顿
async function findMax(largeList){ return new Promise((resolve,reject) =>{ requestIdleCallback(()=>{ try{ let max...
2020-12-28 17:44:19 184
原创 快速排序
//时间复杂度分析://最好的情况:整个数组被分为两个长度相等的子数组时, 时间复杂度为 O(nlogn)//最坏的情况:待排序的序列为正序或者逆序,每次划分只得到一个比上一次划分少一个记录的子序列 (退化成冒泡排序的情况)时间复杂度为O(n的平方)//平均时间复杂度为:O(nlogn)有可能改变相等元素的原始位置,所以快速排序是一种不稳定的排序。//空间复杂度分析://首先就地...
2020-12-18 09:15:24 180
原创 二路归并排序
var arr = [49, 38, 65, 97, 76, 13, 27, 48, 55, 4]; function MergeSort(arr) { var len = arr.length; if(len<=1){ return arr; } var middle = Math....
2020-12-18 09:10:25 71
原创 直接选择排序
//选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,//然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。//超级稳定的算法 时间复杂度永远是O(n的平方)//空间复杂度为O(1) var arr = [49, 38,...
2020-12-18 07:18:42 137
原创 堆排序(大根堆)
var arr = [49,38,27,97,76,13,65,50]; function MaxHeap(arr,size,i){ //左子节点 var left = i*2+1; //右子节点 var right = i*2+2; //假设这个根节点为最大 var max = i...
2020-12-18 07:16:08 124
原创 希尔排序(缩小增量排序)
//选择一个增量序列t1,t2,…,tk,其中ti>tj,tk=1;//按增量序列个数k,对序列进行k 趟排序;//每趟排序,根据对应的增量ti,将待排序列分割成若干长度为m 的子序列,分别对各子表进行直接插入排序。//仅增量因子为1 时,整个序列作为一个表来处理,表长度即为整个序列的长度。//它与插入排序的不同之处在于,它会优先比较距离较远的元素//时间复杂度:最好的情况原本...
2020-12-17 20:29:04 106
原创 vue常见问题总结
vue中的数组的监听不是通过Object.defineProperty来实现的,是通过对’push’,‘pop’,‘shift’,‘unshift’,‘splice’, ‘sort’,'reverse’这几个改变数组本身的方法执行后来通知监听达到的 ...
2020-12-17 08:01:58 186
原创 冒泡排序
//1、比较相邻的两个元素,如果前一个比后一个大,则交换位置。// 2、比较完第一轮的时候,最后一个元素是最大的元素。// 3、这时候最后一个元素是最大的,所以最后一个元素就不需要参与比较大小。//时间复杂度:最好的情况原本就是有序O(n) 最坏的情况 O(n的平方) 平均O(n的平方)//空间复杂度:O(1)//该排序算法稳定 var arr = [49, 38,...
2020-12-17 05:59:15 80
原创 直接插入排序
//从第一个元素开始,该元素可以认为已经被排序;// 取出下一个元素,在已经排序的元素序列中从后向前扫描;// 如果该元素(已排序)大于新元素,将该元素移到下一位置;// 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;// 将新元素插入到该位置后;// 重复步骤2~5。//时间复杂度:最好的情况原本就是有序O(n) 最坏的情况 O(n的平方) 平均O(n的平方)//空...
2020-12-17 05:22:09 75
原创 Vue渲染为什么是异步更新渲染?
如果不采取异步更新,那么每次更新数据都会对当前组件进行重新渲染,为了性能考虑,Vue 会在本轮数据更新后,再去异步更新数据。
2020-12-17 04:06:12 518 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人