无限级分类 发表于 2019-07-03 | 分类于 js无限级分类 | | 当前热度: ℃ 字数统计: 382 | 阅读时长 ≈ 1 前情提要:当我们在做一些商城网站的时候,往往会有一种分类,叫做无限级分类,即:父类下面包含子类,子类又作为父类包含子类,以此类推。如下图所示(淘宝官网)。 原始数据的获取(一般都是从数据库取出)假设获取的数据为:123456789101112let arr = [ {"id":1 ... 阅读全文 »
算法图解之K最近邻算法 发表于 2019-01-22 | 分类于 算法图解 | | 当前热度: ℃ 字数统计: 74 | 阅读时长 ≈ 1 橙子还是柚子推荐系统(余弦相识度)2.1、特征提取2.2、回归2.3、挑选合适特征 机器学习3.1、OCR光学字符识别3.2、创建垃圾邮箱过滤器(算法:朴素贝叶斯分类器)3.3、预测股票市场 阅读全文 »
算法图解之动态规划 发表于 2019-01-22 | 分类于 算法图解 | | 当前热度: ℃ 字数统计: 143 | 阅读时长 ≈ 1 简介动态规划功能强大,它能够解决子问题并使用这些答案来解决大问题。但仅当每个子问题都是离散的,即不依赖于其他子问题时,动态规划才管用。 案例 背包问题 最长公共子串 2.1、绘制网格 2.2、填充网格 2.3、最长公共子序列(比较的是最长公共子串) 2.4、最长公共子序列之解决方案(计算最长公共子 ... 阅读全文 »
算法图解之贪婪算法 发表于 2019-01-22 | 分类于 算法图解 | | 当前热度: ℃ 字数统计: 291 | 阅读时长 ≈ 1 案例(1)教室调度问题(2)背包问题(装东西)(3)集合覆盖问题(代码实现)(4)NP完全问题(多项式复杂程度的非确定性问题,是世界七大数学难题之一)那么如何判断问题是不是NP问题:(没有办法,下面提供有效分析) 元素较少时算法的运行速度非常快,但随着元素数量的增加,速度会变得非常慢。 ... 阅读全文 »
算法图解之狄克斯特拉算法 发表于 2019-01-21 | 分类于 算法图解 | | 当前热度: ℃ 字数统计: 562 | 阅读时长 ≈ 1 应用场景要找出最快的路径。 狄克斯特拉算法下面来看看能否找到耗时更短的路径!狄克斯特拉算法包含4个步骤:(1) 找出“最便宜”的节点,即可在最短时间内到达的节点。(2) 更新该节点的邻居的开销,其含义将稍后介绍。(3) 重复这个过程,直到对图中的每个节点都这样做了。(4) 计算最终路径。 具体实现 ... 阅读全文 »
算法图解之广度优先搜索 发表于 2019-01-20 | 分类于 算法图解 | | 当前热度: ℃ 字数统计: 807 | 阅读时长 ≈ 2 简介广度优先搜索是一种用于图的查找算法,可帮助回答两类问题:第一类问题:从节点A出发,有前往节点B的路径吗?第二类问题:从节点A出发,前往节点B的哪条路径最短? 案例 在你的人际关系网中,有芒果销售商吗?假设你经营着一个芒果农场,需要寻找芒果销售商,以便将芒果卖给他。在Facebook,你与芒果销售 ... 阅读全文 »
算法图解之散列表 发表于 2019-01-19 | 分类于 算法图解 | | 当前热度: ℃ 字数统计: 466 | 阅读时长 ≈ 1 数组和链表都被直接映射到内存,但散列表更复杂,它使用散列函数来确定元素的存储位置。在你将学习的复杂数据结构中,散列表可能是最有用的,也被称为散列映射、映射、字典和关联数组。 散列表的速度很快。你可以立即获取数组中的元素,而散列表也使用数组来存储数据,因此其获取元素的速度与数组一样快。你可能根本不需要 ... 阅读全文 »
算法图解之快排 发表于 2019-01-19 | 分类于 算法图解 | | 当前热度: ℃ 字数统计: 260 | 阅读时长 ≈ 1 D&C算法在讲快排之前首先需要先介绍一下D&C算法。D&C(divide and conquer),分而治之,一种著名的递归式问题解决方法。下面从几个例子来了解一下: 假设你是农场主,有一小块(1680m*640m)土地。你要将这块地均匀地分成方块,且分出的方块要尽可能大。 ... 阅读全文 »
算法图解之递归 发表于 2019-01-18 | 分类于 算法图解 | | 当前热度: ℃ 字数统计: 196 | 阅读时长 ≈ 1 什么是递归假设你在祖母的阁楼中翻箱倒柜,发现了一个上锁的神秘手提箱。祖母告诉你,钥匙很可能在下面这个盒子里。你如何找到它: (1)检查盒子中的每样东西。(2)如果是盒子,就回到第一步。(3)如果是钥匙,就大功告成!递归只是让解决方案更清晰,并没有性能上的优势。实际上,在有些情况下,使用循环的性能 ... 阅读全文 »
算法图解之选择排序 发表于 2019-01-18 | 分类于 算法图解 | | 当前热度: ℃ 字数统计: 45 | 阅读时长 ≈ 1 实现方式每次选出最小/最大的,放到一个新数组中,接着继续寻找剩下的元素中的最小的,以此类推。 代码实现 阅读全文 »