
计算机算法设计与分析(王晓东)--读后实现
当幸福来敲门1
仲夏夜,星之空, 年少轻狂挽如风
展开
-
图的m着色问题
问题描述:给定无向连通图G和m中不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。是否有一种着色法使G中每条边的2个顶点着有不同的颜色。//假设有四种颜色 #includeint n = 5; //其中n代表是图的顶点的数量int x[6];// i=0的位置不使用 //这个矩阵存储的是图的顶点之间的关系 int a[6][6] ={ //其中i=0||y =0的位置不原创 2016-07-20 16:25:03 · 1191 阅读 · 0 评论 -
装载问题(2) --课本实现
书中的实现思路:首先书中提出的思想:如果一个给定的装载问题有解,在采用下面的策略一定可以得到最优的装载方案:(1)首先将一艘轮船尽可能的装满(2)然后将剩余的集装箱装上第二艘轮船根据上述的思想,书中代码实现如下:实现1:只是单纯的求出c1号仓库最优的装载重量/**出发点是问题一定有解(算法中没考虑无解的情形) */ #includeint n = 3;//物品的原创 2016-07-22 10:12:38 · 460 阅读 · 0 评论 -
两个矩阵相乘算法
本来是处理两个矩阵的连乘求如何加括号使得中间的运算次数最少的问题,但是突然想到实现一下如何求连个矩阵连乘的算法,就实现了一下,挺简单的:注意程序围绕的思想:1.两个矩阵相乘,前一个矩阵的列等于一个矩阵的行2.拿前一个矩阵的每一行,依次的乘以后一个矩阵的每一列#include//注意矩阵连乘需要满足的是://前一个矩阵的列等于后一个矩阵的行 using namespace st原创 2016-09-17 19:32:18 · 8832 阅读 · 0 评论 -
装载问题(1)
自己实现的算法:#includeint weight[4] = {0,10,40,20}; //0号位置不使用 int x[4]; //记录i号物品所装入箱子的号码, int c1 = 30;//1号箱子的容量 int c2 = 40; //2号箱子的容量 bool BackTrace(int i);int main(){ BackTrace(1);}bool Back原创 2016-07-21 17:08:09 · 1186 阅读 · 0 评论 -
旅行售货员问题
今天本来要处理的是八皇后问题,突然间想实现一下旅行售货员问题,于是我的第一版代码如下(没有带任何的剪枝函数),其中旅行售货员的图是王晓东-计算机算法设计与分析140页图:#includeusing namespace std;int visit[4];int road[4]; //记录的是路径int sum = 0; int cost = 200;int flag = 0;in原创 2016-09-06 22:18:59 · 1730 阅读 · 0 评论 -
最大字段和2
最大子段和1已经写过一个最大字段和了,这里提供书中的另外一种实现:刚开始我自己的实现过程,是这样的:思想:即找到所有可能的子段,然后对每个子段求和,计算出最大值public static int getMaxSum1(){ //效率最低的算法 int max = 0; int sum = 0; for (int i=0; i<input.length; i++){原创 2017-03-20 22:05:45 · 288 阅读 · 0 评论 -
最大子段和1
问题很简单,求一串数字中子段的最大和,很经典的问题。测试序列 input[] = {-2,11,-4,13,-5,-2}首先上自己的实现:1.效率最低的方法,用程序模拟出所有可能的子串,然后对子串分别求和,找到最大的sumpublic static int getMaxSum1(){ //效率最低的算法 int max = 0; int sum = 0; fo原创 2017-03-20 20:24:06 · 442 阅读 · 0 评论