
算法
文章平均质量分 79
songzi0206
这个作者很懒,什么都没留下…
展开
-
动态规划之活动选择--算法分析和描述
最近复习了算法导论部分内容,感觉好陌生啊。记得研一老师只上了算法入门,其余的章节班级分组学习讲解,我只记得我们那一组负责的内容,有关图论、Dijkstra之类的。这两天看了动态、贪心算法,感觉这个真的很不错,以前只忙于准备自己的章节,也没有细细学习和体会。 总体感觉(个人的理解,不一定准确),动态规划的核心步骤是分析问题,描述出解的递推公式,这个类似于高中学得数列只是更加复杂一些,毕...原创 2011-08-25 23:26:15 · 456 阅读 · 0 评论 -
动态规划之活动选择--代码实现
昨天对活动选择的动态规划解做了分析和描述,今天就来简单的实现一下代码,并用实例来验证其运行的正确性。 //基础类用来保存动态的集合A[i][j]class DynamicSet{ public static DynamicSet empty = new DynamicSet(null); List<Integer> resultSet = null...原创 2011-08-26 15:19:24 · 456 阅读 · 0 评论 -
顺便复习了下部分排序
这两天趁复习算法之际,顺便实现了下插入、合并、堆和快速排序。不解释,贴点代码算是给自己留下备日后复习。 /** * Sort the array of a * Just like a number of n cards on the desk, you pick one by one, each time you pick up one card, insert into th...原创 2011-08-28 16:34:32 · 133 阅读 · 0 评论 -
优先队列
在堆排序基础上顺便实现下优先队列,纯粹为实现下优先队列的思想,也顾不上代码丑陋了,嘿嘿,自己学习。 public class PriorityQueue<T extends Comparable<T>> { /** * 和对排序中一样,第零个元素不做用 */ private T[] queue; private i...原创 2011-08-28 16:39:19 · 85 阅读 · 0 评论 -
动态规划之装配线问题
/** * 动态规划之装配线问题: * 有两条装配线L1和L2,每条装配线上有n个站,将装配线i(=1或2)的第j个站表示为S[i][j].装配线1和2的第j个站功能相同,但是加工的时间不同,设S[i][j]站得时间为a[i][j] * 一个产品进入生产线i的时间为e[i],完成后离开生产线i的时间为x[i] * 一个产品在同一条装配线上从上一站完成后转移到下一站的时间为0,...原创 2011-08-29 00:52:13 · 350 阅读 · 0 评论 -
动态规划之LCS
/** * 动态规划之最长公共子序列问题:给定一个子序列 X = <x1,x2,...xm>,另一个子序列Z = <z1,z2,...zk>是X的子序列,如果存在X的一个严格递增下标序列 * <i1,i2,...ik>,使得对于所有j = 1,2,...k,有xij = zj。如Z=<B,C,D,B>是X=<A,B,C,B,D,A...原创 2011-08-29 12:57:39 · 140 阅读 · 0 评论 -
贪心算法之活动选择问题
/** * 活动选择之贪心解法 * 在上周学习动态规划时已经用动态规划分析了活动选择,有: * A[i][j] = A[i][k] ∪ {a[k]} ∪ A[k][j] * c[i][j] = c[i][k] + 1 + c[k][j] * 将A[i][j]的解分解到两个子集(A[i][k]和A[k][j])的解,如果进一步分析: * 假设对于任意非空子集S[...原创 2011-08-29 18:15:51 · 130 阅读 · 0 评论