
算法
Java学习之平凡之路
悟空CRM部署支持V JIN453786790
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
0002算法笔记——【递归】排列问题,整数划分问题,Hanoi问题
转载的地址为点击打开链接 递归的概念想必大家都清楚,概念神马的直接略过。这里介绍递归相关的几个问题。 1、排列问题 设R={r1,r2,...,rn}是要进行排列的n个元素,Ri=R-{ri}。集合x中元素的全排列记为Perm(X)。(ri)Perm(X)表示在全排列Perm(X)的每一个排列前加上前缀ri得到的排列。R的全排列可归纳如下: 当n=转载 2015-04-08 15:59:25 · 412 阅读 · 0 评论 -
求二进制中1的个数
意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4 解法一:除余法 每次除二,看是否为奇数,是的话就累计加一,最后这个结果就是二进制表示中1的个数。 解法二:使用位运算 解法三:快速法 此法一张纸 一只笔 举例说明即可明白... 如果n的二进制表示中有k个1,那么这个方法只需要循转载 2015-04-16 22:30:38 · 601 阅读 · 0 评论 -
关于整数划分的整理
基于有递推公式的: 1、递归 2、递归转化为非递归 点击打开链接 不基于有递推公式的: 3、非递归 4、#include using namespace std; main() { int i,j,n,t; cout cin>>n; cout for(i=n-1;i>0;i--) { for(j=n-i;转载 2015-04-08 19:27:56 · 559 阅读 · 0 评论 -
通过金矿模型介绍动态规划
转载:http://www.cnblogs.com/sdjl/articles/1274312.html 对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划。本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现有不通转载 2015-05-11 11:06:58 · 546 阅读 · 0 评论 -
石子合并问题
参考1参考网站2 #include using namespace std; #include #include const int INF= 1<<30; const int INFS=1>>30; const int N=100; int dp[N][N]; int sum[N]; int a[N]; int MinScore(int a[], int n) { int i; sum[0原创 2015-05-05 16:56:58 · 357 阅读 · 0 评论 -
0-1背包问题的空间优化
http://www.2cto.com/kf/201301/184347.html http://www.tuicool.com/articles/nIn2u2E 如果你不知道什么叫做0-1背包问题,下面是0-1背包问题的简单描述 假设有n件物品 每件物品的体积为w1, w2……wn 相对应的价值为 v1, v2.……vn。 01背包是在n件物品取出若干件转载 2015-05-17 19:44:27 · 858 阅读 · 0 评论 -
最小生成树与最短路径的区别以及实现方法
转载:点击打开链接 一 区别 最小生成树能够保证整个拓扑图的所有路径之和最小,但不能保证任意两点之间是最短路径。 最短路径是从一点出发,到达目的地的路径最小。 二 实现方法 1. 最小生成树 最小生成树有两种算法来得到:Prims算法和Kruskal算法。 Kruskal算法:根据边的加权值以递增的方式,一次找出加权值最低的边来构建最小生成树,而且规定:每次添加的边不能造成生成树转载 2015-06-28 20:38:50 · 999 阅读 · 0 评论