随笔分类 -  算法和数据结构

摘要:二分查找算法,也称折半搜索算法,是一种在有序数组中查找某一特定元素的搜索算法。算法思想是不断的缩小查找范围。 思路步骤 1️⃣ 确定基准: 选定数组的中间元素(基准值)。 如果数组大小为偶数,通常选择中间的 右侧元素(也可以选择左侧元素,但不影响算法效果)。 2️⃣ 分割数组: 将数组分成两半,基准 阅读全文
posted @ 2022-04-11 17:36 我是格鲁特 阅读(588) 评论(0) 推荐(0)
摘要://json格式的时间转换为js时间 function convertJsonTime(jsonTimeStr) { var regPattern=/^\/Date\((\d+)\)\/$/ if(regPattern.test(jsonTimeStr)){ var totalMs=RegExp.$ 阅读全文
posted @ 2018-09-18 18:43 我是格鲁特 阅读(122) 评论(0) 推荐(0)
摘要:因为 Math.random() 制造的随机数范围是[0, 1)想要生成16到22之间的随机数(即最小值m=16,最大值n=22),首先需要计算出最大值与最小值的差range=m-n 随后把[0, 1)这个区间的随机数乘以range,区间就拓展到[0, 6)。在此基础之上再加最小值,范围就移动到[1 阅读全文
posted @ 2018-09-18 08:42 我是格鲁特 阅读(371) 评论(0) 推荐(0)
摘要:带小数点的 var a = 8462948.2453; console.log(a.toLocaleString()) //8,462,948.245 不带小数点的 num.toString().replace(/(\d)(?=(\d{3})+$)/g,'$1,') 满足两者情况的 function 阅读全文
posted @ 2018-08-21 11:33 我是格鲁特 阅读(491) 评论(0) 推荐(0)
摘要:核心思路(分治思想) 快速排序采用**分治(Divide and Conquer)**的思想,基本步骤如下: 选取基准(Pivot):从数组中选择一个“基准值”。 分区(Partition): 将数组分成两部分:小于基准值的放左边,大于基准值的放右边(可原地交换实现)。 递归排序(Recursion 阅读全文
posted @ 2018-05-26 22:35 我是格鲁特 阅读(219) 评论(0) 推荐(0)
摘要:猛戳 阅读全文
posted @ 2018-05-26 20:10 我是格鲁特 阅读(101) 评论(0) 推荐(0)
摘要:深度优先 前序遍历(根-左-右):[a, b, d, g, h, c,e,i,f] 访问根节点 访问当前节点的左子树 若当前节点无左子树,则访问当前节点的右子树 递归版本: function preorderTraversal(root) { if (root null) return; // 访问 阅读全文
posted @ 2018-05-26 19:01 我是格鲁特 阅读(81) 评论(0) 推荐(0)