算法与数据结构
feiyy404
选择往往比努力更重要。
展开
-
数据结构之广度优先算法的Python简单实现
问题描述,假设你经营着一家农场,需要寻找芒果销售商,以便将芒果卖给他。为此,我们的原则是先在一级朋友中查找,然后在二级朋友(朋友的朋友)、三级朋友(朋友的朋友的朋友)中查找。使用这种算法将搜遍你的人际关系网,直到找到芒果销售商,这就是广度优先搜索算法。 实现代码from collections import dequegraph = {}graph["you"] = ["alice...原创 2018-02-24 23:14:03 · 999 阅读 · 0 评论 -
哥尼斯堡七桥问题
问题描述现在你需要找出走遍7座桥的方法,但是,必须遵守以下条件: 1 走过的桥不能再走 2 可以多次经过同一块陆地 3 可以以任一陆地为起点 4 不需要回到起点简化模型 数学家欧拉已经将这个问题作为一笔画问题解决,这就是图论的开山鼻祖。思考过程在反复的实验中,我们注意到了:要通过一个顶点,这个顶点必须具有2条边,即“入口边”和“出口边”。1个顶点关联...翻译 2018-04-27 19:30:35 · 3560 阅读 · 0 评论 -
对汉诺塔递归问题的另外一种理解思路
汉诺塔是一个由数学家爱德华卢卡斯(Edouard Lucus)于1883发明的游戏。思考题: 有三根细柱(A,B,C),A柱上套着6个圆盘,这些圆盘大小各异,按照从大到小的顺序自下而上摆放。现在要把套在A柱上的6个圆盘移动到B柱上,并且在移动圆盘时遵守以下规定: (1)一次只能移动柱子最上端的一个圆盘; (2)小圆盘上不能放大圆盘。 将1个圆盘从一根柱子移动到另一根柱子,算是移动一...翻译 2018-04-28 21:37:27 · 2017 阅读 · 0 评论 -
Python 里面的链表与传统的 list 之间的差别
import timedef log_time(func, *args, **kwargs): def inner(): t1 = time.time() func(*args, **kwargs) t2 = time.time() print(f"使用的时间是{t2 - t1}s") return inner...原创 2019-09-07 09:21:04 · 2653 阅读 · 0 评论