算法
文章平均质量分 90
张小彬的代码人生
coder
展开
-
《算法导论》第24章 单源最短路径
单元最短路径单源最短路径原创 2014-05-18 22:58:07 · 1209 阅读 · 0 评论 -
研究生课程 算法分析笔记
算法分析有四大经典的思想,分治法、贪心法、动态规划,最后一个是回溯法和分支限界法,后面会针对性都出一篇博客总结。这篇博文先总结一下除了四大算法之外的,杂七杂八的笔记。原创 2016-12-29 16:52:43 · 1162 阅读 · 0 评论 -
研究生课程 算法分析-贪心法
贪心法的思想在求解一些最优化问题的时候,一般会分成多个步骤,每一步都有一个选择。贪心算法的思想在于,先不从整体考虑,每次都只做当前看来最优的思想,即局部最优解,期望通过一步步的局部最优解,最后构造出全局最优解。贪心算法是很多问题的最优解,当然也有很多问题只是局部最优,或者近似最优解,在构造贪心算法的时候,要注意贪心选择是否能求出最后的最优解。贪心算法的基本要素最优子结构性质一个问题的最优解包含其子问原创 2016-12-31 12:45:53 · 1106 阅读 · 0 评论 -
第一章 算法设计基础
第一题:UVa11292#include #include #include using namespace std;const int MAX = 20005;int n, m;int d[MAX], w[MAX];int cost = 0;void test(){ for(int i = 0; i < n; ++ i) cout << d[i] << " ";原创 2014-08-29 08:45:25 · 594 阅读 · 0 评论 -
研究生课程 算法分析-分治法
分治法(divide and conquer)是算法分析里比较直观和朴素的思想,应用也很广泛。分治法的思想分治法的思想是,把一个复杂的问题 P 划分称 kk 个子问题,这些子问题相互独立且与原问题相同。递归调用子问题,直到问题规模足够小,可以很容易地求解为止;接着,把小规模的问题的解合并成一个更大规模的问题的解。可以用下面的伪代码来描述,divide-and-conquer(P) { if原创 2016-12-29 19:46:01 · 779 阅读 · 0 评论 -
研究生课程 算法分析-动态规划
动态规划的思想上一篇博文讲了分治法,这一篇的动态规划思想有些接近,但是两者最大区别是,动态规划要解决的子问题往往不是独立的,子问题往往被重复求解了很多次。所以一个叫朴素的想法是,把每个子问题的答案都保存下来,从而避免大量的重复计算。这种方法叫做备忘录方法,是典型的以空间换取时间。动态规划的基本要素最优子结构性质最优子结构的性质指的是,问题的最优解包含着其子问题的最优解。利用该性质,自底向上递归地从子原创 2016-12-29 20:48:10 · 656 阅读 · 0 评论 -
DES 加密算法的实现
概述DES加密算法,算是密码学里入门的知识了,前段时间有兴趣搞了一下,但是没有做完。现在桌面实在是东西太多了,暂且丢到博客里,以后有空再来改一下。一共三个文件:data.h 各种表组成的头文件des.h DES加密算法的主要函数都在里边了test.cpp 测试各个函数的测试文件贴代码:/* 下面是DES加密算法的各种置换表 由Halfish整原创 2014-12-25 18:38:48 · 890 阅读 · 0 评论 -
动态规划 UVa 624 CD
You have a long drive by car ahead. You have a tape recorder, but unfortunately your best music is on CDs. You need to have it on tapes so the problem to solve is: you have a tape N minutes long. How原创 2014-09-01 23:24:14 · 784 阅读 · 0 评论 -
动态规划 POJ 2184 Cow Exhibition
原题链接:poj 2184原题原创 2014-09-11 16:56:29 · 971 阅读 · 0 评论 -
动态规划 (一) 基本概念
多阶段决策过程(multistep decision process)原创 2014-08-29 11:56:33 · 724 阅读 · 0 评论 -
动态规划 (二) 最优矩阵链乘
背景分析最优矩阵链乘是二维的动态规划问题,也是较为经典的动态规划入门问题。《算法导论》和刘汝佳的《算法竞赛入门经典》中都有详细描述。问题描述在线性代数里,我们都学过矩阵的乘法。矩阵的乘法不满足分配律,但是满足结合律,因此 (A X B)X C 与 A X(B X C)的运算结果是一样的,但是中间的运算量却可能不一样。例如:假设A、B、C矩阵分别是2x3、3x4、4x5的,则 (A原创 2014-08-31 11:57:11 · 3257 阅读 · 0 评论 -
动态规划 (三) 背包问题
问题描述有n个y物品,且每个物品都原创 2014-09-01 10:43:19 · 1988 阅读 · 2 评论 -
动态规划 UVA - 562 Dividing coins
原题链接UVa 562 Dividing Coins题目分析这道题基本上就是直接原创 2014-09-06 16:46:53 · 891 阅读 · 0 评论 -
Bellman-Ford算法
一、算法概述Bellman-Ford算法,也可以fan原创 2014-05-19 13:41:20 · 2285 阅读 · 0 评论 -
Dijkstra算法
一、算法介绍Dijkstra算法用于求解单源最短路径问题原创 2014-05-25 21:43:24 · 1189 阅读 · 0 评论 -
Bellman-Ford算法的改进:SPFA算法
一、算法简介SPFA算法全称是原创 2014-05-25 13:54:45 · 1327 阅读 · 0 评论 -
研究生课程 算法分析-回溯法和分支限界法
回溯法(backtrack)有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。回溯法的基本做法是 搜索,或是一种组织得井井有条的,能避免不必要搜索的穷举式搜索法。这种方法适用于解一些组合数相当大的问题。回溯法在问题的解空间树中,按 深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过原创 2016-12-31 13:26:16 · 2657 阅读 · 2 评论