![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
超超boy
这个作者很懒,什么都没留下…
展开
-
分治法求最大子段和
前边介绍了动态规划法求最大子段和,这里用分治法来求。 分治法顾名思义,就是分而治之,化大为小,把一个大问题的解逐步分成小问题,最后再把小问题的解逐步合成大问题的解。 上代码简单易懂:#include <stdio.h> int max_sub_sum(int a[],int left, int right){ int center,i,j,sum,left_sum,right_sum,s原创 2015-07-27 20:45:38 · 8264 阅读 · 0 评论 -
n的全排列
利用回溯法解决全排列问题,借助状态数组,记录1–n是否使用,1已使用,0未使用。#include <stdio.h>int p=0,n,a[100],d[100];void main(){ int j; printf("输入n:\n"); scanf("%d",&n); for(j=1;j<=n;j++) d[j]=0; try(1); } void try(int k)原创 2015-07-27 21:56:54 · 404 阅读 · 0 评论 -
单源最短路径
1、实验环境 Visual C++ 6.0 2、实验目的和要求 目的:给定一个带权有向图G=(V,E),其中每条边的权是一个实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到其他所有各顶点的最短路径长度。这里的长度就是指路上各边权之和。3、解题思路、伪代码 3.1解题思路:将一个图G中所有的顶点V分成两个顶点集合S和T。以v为源点已经确定了最短路径的终点并入S集合中,S原创 2015-07-27 20:02:43 · 1122 阅读 · 0 评论 -
动态规划求最大子段和
一、动态规划思想:动态规划通过多阶段决策解决问题,每一次的决策结果序列都必须进行存储。因此,可以说:“动态规划是高效率、高消费”的算法。动态规划就是分支算法的升级版,它的实质是:分支算法+解决子问题冗余情况。 二、下面就从动态规划的角度设计算法。 1.记sum为a[1]–a[i]的最大子段和,this_sum[i]为当前字段和。 2.this_sum[i]从1开始累加:this_sum[j]=原创 2015-07-27 20:26:09 · 7568 阅读 · 0 评论 -
回溯法求最优解问题-流水车间调度
1.问题的解空间是一颗排列树,简单的解决方法是在搜索排列书的同时,不断更新最优解,最后找到问题的解。 2.机器M1进行顺序加工,其加工时间f1是固定的, f1=f1+job[x[j]][1];。 机器M2则有可能空闲或积压。M2空闲时:f2[i]=f1+job[x[j]][2]; M2积压时:f2[i]=f2[i-1]+job[x[j]][2]; M2有空闲:原创 2015-07-27 21:34:31 · 4665 阅读 · 0 评论