摘要: 贪婪算法 贪婪算法的优点——简单易行!贪婪算法很简单:每步都采取最优的做法。用专业术语说,就是你每步都选择局部最优解,最终得到的就是全局最优解。 集合覆盖问题 假设你办了个广播节目,要让全美50个州的听众都收听得到。你需要决定在哪些广播台播出。力图在尽可能少的广播台播出。每个广播台都覆盖特定的区域, 阅读全文
posted @ 2019-03-11 20:59 WMXNLFD 阅读(826) 评论(0) 推荐(0) 编辑
摘要: 狄克斯特拉算法(Dijkstra’s algorithm) 狄克斯特拉算法用于每条边都有关联数字的图,这些数字称为权重(weight)。带权重的图称为加权图(weighted graph),不带权重的图称为非加权图(unweighted graph)。要计算非加权图中的最短路径,可使用广度优先搜索。 阅读全文
posted @ 2019-03-11 20:34 WMXNLFD 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 图算法——广度优先搜索(breadth-first search,BFS) 解决最短路径问题的算法被称为广度优先搜索。 图是什么?图模拟一组连接,由节点(node)和边(edge)组成。一个节点可能与众多节点直接相连,这些节点被称为邻居。 问题:假设你经营着一个芒果农场,需要寻找芒果销售商,以便将芒 阅读全文
posted @ 2019-03-11 19:51 WMXNLFD 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 散列函数(hash table) 散列函数是这样的函数,即无论你给它什么数据,它都还你一个数字。散列函数“将输入映射到数字”。数组和链表都被直接映射到内存,但散列表更复杂,它使用散列函数来确定元素的存储位置。 Python提供的散列表实现为字典,你可使用函数 dict 来创建散列表。例如:book 阅读全文
posted @ 2019-03-11 19:34 WMXNLFD 阅读(248) 评论(0) 推荐(0) 编辑