随笔分类 -  计算机算法基础

动态规划
摘要:无论过程的初始状态和初始决策是什么,其他决策都必须相对于初始决策所产生的状态构成一个最优决策序列。一般不可能在每一阶段直接选出最优决策序列中属于此阶段的决策值,可以从最后阶段开始,逐步向前递推方式求解前一阶段决策值的递推关系。 根据xi+1..xn的那些决策序列求取xi的决策值的关系式——动态规划的... 阅读全文

posted @ 2015-08-16 11:31 dan-cnblogs 阅读(450) 评论(0) 推荐(0)

贪心方法
摘要:1.背包问题按效益值/重量 进行排序输入2.带限期的作用排序按效益值进行排序输入3 最小生成树:贪心方法:每次计入成本最小的边原树T, 欲构造的最小生成树T'Prim: 从T中选与T'中结点相连的成本最小的边。 且:边之前不在T'中。加入Tp后不会构成环Kruskal: 从T中成本最小的边。 且... 阅读全文

posted @ 2015-08-16 10:56 dan-cnblogs 阅读(147) 评论(0) 推荐(0)

计算机算法基础 ——数学(排列组合函数)
摘要:一 排列1.从n个元素中取r个元素排列的全体数目Pnr=P(n,r)=n(n-1)(n-2)...(n-r+1)=n!/(n-r)! :例:n个球取r个放入r个不同盒子,每个盒子一个球,多少种放法2. n个元素的全排列Pnn=P(n,n)=n!3.例:随机选n(n<365)个人,求其... 阅读全文

posted @ 2015-08-16 10:35 dan-cnblogs 阅读(1802) 评论(0) 推荐(0)

N皇后问题 ——回溯思想
摘要:n皇后问题:n*n棋盘:使其不能相互攻击:即任意两个皇后不可在同一行,同一列,或同一条对角线上;使用回溯法;回溯法思想:一个解空间(X0,X2...Xn-1),显式约束条件,隐式约束条件Xi之间的关系;void rcallback(int k){ for( 满足下式的每个X(k): 满足显... 阅读全文

posted @ 2015-08-16 00:05 dan-cnblogs 阅读(477) 评论(0) 推荐(0)

有向图中,每对结点之间最短路径 ——动态规划
摘要:1.有向图中,每对结点之间的最短路径动态规划法:向前处理法:由前向后递推的方式求解列出的关系式本题关键在于:A[i][j]= A[i][j] < (A[i][k]+A[k][j]) ? A[i][j] : A[i][k]+A[k][j];即A(i,j)=min{A(i,j), A(i,K)+A(k,... 阅读全文

posted @ 2015-08-15 19:55 dan-cnblogs 阅读(928) 评论(0) 推荐(0)

归并排序 && 快速排序 ——分治思想
摘要:对数组进行归并排序:——分治法分治法思想:先将原问题,分解成几个可独立求解的子问题, 等子问题求解后, 用适当方法,将子问题的解合并成原问题的解;通常,由于子问题与原问题有相同的类型,故可使用递归实现。数组的归并排序:实现:package com.algothrim;/* * 归并排序的实现 */p... 阅读全文

posted @ 2015-08-15 15:53 dan-cnblogs 阅读(333) 评论(0) 推荐(0)

汉诺塔问题 Hanio ——递归思想
摘要:问题描述: 一根柱子称原柱上,套有n个盘子,依次从小到大地从上往下地排序着,需要将这n个盘子移动一个目标柱上,要求在移的过程中,大的盘子不可以在小的盘子上面。可以使用一根辅助柱子;分析: //函数参数:第一个参数表示欲移动的原柱最顶上的n个盘子,第二个参数表示原柱子,第三个参数表示辅助柱子,第三个参... 阅读全文

posted @ 2015-08-15 10:42 dan-cnblogs 阅读(654) 评论(0) 推荐(0)