摘要: K最近邻算法(k-nearest neighbours,KNN) 算法 使用 使用KNN来做两项基本工作——分类和回归: 分类就是编组; 回归就是预测结果(如一个数字)。 特征抽取 用于确定两个元素相似程度 方法 使用毕达哥拉斯公式 回归(regression) 回归可以预测结果 方法 挑选合适的特 阅读全文
posted @ 2018-08-31 11:45 LiliP 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 动态规划 原理 动态规划先解决子问题,再逐步解决大问题。但仅当每个子问题都是离散的,即不依赖于其他子问题时,动态规划才管用 比较方法 可以使用表格法逐个罗列分析,每个表格中填写子问题最优解 示例 包容量为4磅,商品有三件,吉他($1500),音响($3000),电脑($2000),尽可能装下总和最贵 阅读全文
posted @ 2018-08-30 12:08 LiliP 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 贪婪算法 每步都采取最优的做法,即每步都选择局部最优解,最终得到的就是全局最优解。 在有些情况下,贪婪策略显然不能获得最优解,但非常接近。完美是优秀的敌人,有时候,只需找到一个能够大致解决问题的算法,此时贪婪算法正好可派上用场,因为它们实现起来很容易,得到的结果又与正确结果相当接近。 近似算法(ap 阅读全文
posted @ 2018-08-29 11:34 LiliP 阅读(543) 评论(0) 推荐(0) 编辑
摘要: 狄克斯特拉算法(Dijkstra’s algorithm) 找出最快的路径使用算法——狄克斯特拉算法(Dijkstra’s algorithm)。 使用狄克斯特拉算法 步骤 (1) 找出最便宜的节点,即可在最短时间内前往的节点。 (2) 对于该节点的邻居,检查是否有前往它们的更短路径,如果有,就更新 阅读全文
posted @ 2018-08-28 12:07 LiliP 阅读(5316) 评论(0) 推荐(0) 编辑
摘要: 广度优先搜索(breadth first search) 图 最短路径问题(shorterst-path problem) 解决最短路径问题的算法被称为广度优先搜索。 最短路径问题解决步骤 (1) 使用图来建立问题模型。 (2) 使用广度优先搜索解决问题。 图的定义 图模拟一组连接。 图由节点(no 阅读全文
posted @ 2018-08-27 11:47 LiliP 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 散列表 散列函数 定义 散列函数“将输入映射到数字”。即无论你给它什么数据,它都还你一个数字。 散列函数必须满足一些要求 l 它必须是一致的。例如,假设你输入apple时得到的是4,那么每次输入apple时,得到的都必须为4。 l 它应将不同的输入映射到不同的数字。 例如, 如果一个散列函数不管输入 阅读全文
posted @ 2018-08-24 11:35 LiliP 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 递归 实例:在盒子中寻找钥匙 方法1:使用while循环 (1) 创建一个要查找的盒子堆。 (2) 从盒子堆取出一个盒子,在里面找。 (3) 如果找到的是盒子,就将其加入盒子堆中,以便以后再查找。 (4) 如果找到钥匙,则大功告成! (5) 回到第二步。 方法2:使用递归 (1) 检查盒子中的每样东 阅读全文
posted @ 2018-08-21 23:37 LiliP 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 内存的工作原理 需要将数据存储到内存时,请求计算机提供存储空间,计算机返回一个存储地址。需要存储多项数据时,有两种基本方式——数组和链表。 数组和链表 数组 使用数组意味着所有内容在内存中都是相连的(紧靠在一起的)。 在数组中添加新元素,如果没有了空间,就得移到内存的其他地方,因此添加新元素的速度会 阅读全文
posted @ 2018-08-20 15:22 LiliP 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 二分查找 基本概念 二分查找是一种算法,其输入是一个有序的元素列表。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回null。 使用二分查找时,每次都排除一半的数字 对于包含n个元素的列表,用二分查找最多需要log2n步,而简单查找最多需要n步。 示例: 如果列表包含8个数字,你最多需要检 阅读全文
posted @ 2018-08-15 15:23 LiliP 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-08-02 14:20 LiliP 阅读(94) 评论(0) 推荐(0) 编辑