基础算法
楼上little黑
我要不写点东西,他就说我偷懒,没写签名
展开
-
算法1·递归(汉诺塔)
count = 0#(初始柱子,中间柱子,结果柱子)在递归过程中,ABC三柱子的实际作用会发生变化,但函数位置代表的含义不会改变# 递归可以只关注N与N-1的关系def hanoi(n, start, mid, end): global count if n == 1: print("{} | 方法:{}->{}".format("递归层数:1"...原创 2019-05-06 21:34:36 · 384 阅读 · 0 评论 -
算法3·广度优先搜索(关系最短)
from collections import dequefriends = {}friends["my_friend"] = ["李", "吴", "徐"]friends["李"] = ["潘O", "孟"]def search(name): people = deque() people += friends[name] searched = [] ...原创 2019-05-10 10:31:14 · 159 阅读 · 0 评论 -
算法2·欧几里得(最大公约数),快速排序
最大公约数:def ojld(x, y): if x % y == 0: print(min(x, y)) else: a = x % y if a == 0: print(min(x, y)) else: b = y % a if b == ...原创 2019-05-07 19:40:50 · 181 阅读 · 0 评论 -
算法4·狄克斯特拉算法(路程最短,只可用于非负权重时使用)
#建立图pic = {}pic["a"], pic["a"]["b"], pic["a"]["c"] = {}, 5, 2pic['b'], pic['b']['d'], pic['b']['e'] = {}, 2, 4pic['c'], pic['c']['b'], pic['c']['d'] = {}, 8, 7pic['d'], pic["d"]['f'] = {}, 1pic...原创 2019-05-10 12:57:51 · 265 阅读 · 0 评论 -
算法5·贪婪算法(旅行商问题)
解释:该算法用于需要计算所有的解,并从中找到最短的那一个与狄克斯特拉算法不同的是:这里只输入了狄克斯特拉算法里面的cost# 输入旅行表信息distance = {}distance['ab'] = distance['ba'] = 10distance['ac'] = distance['ca'] = 12distance['ad'] = distance['da'] = 16...原创 2019-05-11 18:39:33 · 2136 阅读 · 0 评论