算法
文章平均质量分 66
mafanhe
coder
展开
-
串的模式匹配算法(暴力/KMP)
def index(pstr, subStr): i, j = 0, 0 while ilen(pstr) and jlen(subStr): if pstr[i] == subStr[j]: i += 1 j += 1 else: i = i-j+1 j = 0 return i-l原创 2016-08-15 00:49:14 · 428 阅读 · 0 评论 -
《python算法笔记》(一)为什么要学习算法
学习算法是为了更有效率地解决问题,并且让程序运行的更快。我们来做一个小实验,在python解释器下输入下面的代码:>>> count = 10**5>>> nums= []>>> for i in range(count):... nums.append(i)...>>> nums.reverse()这段代码并没有什么实际用处。只是把一堆数字添加到一个空list里,然后反转这个li原创 2016-06-14 12:21:09 · 1483 阅读 · 0 评论 -
约瑟夫环出圈问题三种求解方法
#coding=utf-8# 递归直接求出def fun_recursion(m,k): """ f[1]=0; f[i]=(f[i-1]+k)%i = (f[i-1] +m%i) % i = (f[i-1] + m) % i ; (i>1) :param m: 长度 :param k: 第k数出环 :return: """原创 2016-09-02 15:00:18 · 5408 阅读 · 0 评论 -
五大常用算法之一:分治算法
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计转载 2016-08-23 14:51:22 · 338 阅读 · 0 评论 -
五大常用算法之三:贪心算法
贪心算法一、基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前转载 2016-08-23 15:40:28 · 481 阅读 · 0 评论 -
五大常用算法之二:动态规划算法
一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能转载 2016-08-23 14:55:32 · 319 阅读 · 0 评论 -
回溯法解决八皇后问题(循环/递归)
# 回溯法解决八皇后问题def place(l, k): for i in range(1,k): if l[i] == l[k] or abs(k-i) == abs(l[k]-l[i]): return False return True# 循环def queue(n): l = [0]*(n+1) k =原创 2016-08-22 21:15:23 · 1258 阅读 · 0 评论 -
树的前序中序后序非递归遍历
class Tree: # def __init__(self): # pass def __init__(self, data=None, left=None, right=None): self.data = data self.left = left self.right = rightdef firsttraverse(t)原创 2016-08-14 23:44:01 · 284 阅读 · 0 评论 -
图的最短路径(dijkstra算法/floyd算法)
public static int Dijkstra(int[][] matrix,int m, int v0,int v1) { int MAXINT = 9999; int MAXNUM = m+1; int dist[] = new int[MAXNUM]; //距离 int prev[] = new int[MAXNUM]; //前趋节点原创 2016-08-16 00:09:20 · 431 阅读 · 0 评论 -
《python算法笔记》(二)基础知识
1.计算的核心理念2.渐进符号3.实现图和树4.小心黑盒子原创 2016-07-04 16:11:16 · 710 阅读 · 0 评论