调动申请书范文-电视剧 奋斗
2022年9月8日发
(作者:花开花落终有时)
课程名称:
实验项目:分治法合并排序
实验地点:
专业班级:
学生:
指导教师:
本科实验报告
算法设计与分析
贪心法作业调度
动态规划法求多段图问题
回溯法求n皇后问题
致远楼B50
学号:
2017年月18日
实验1分治法合并排序
一、实验目的
1.掌握合并排序的基本思想
2.掌握合并排序的实现方法
中医养生.学会分析算法的时间复杂度
4.学会用分治法解决实际问题
二、实验容
随机产生一个整型数组,然后用合并排序将该数组做升序排列珍珠泉,要求输出排序前和排序后的
数组薛之谦跨年演唱会。
三、实验环境
Window10;惠普笔记本;Devcpp
四、算法描述和程序代码
#include
#include
#include
#include
usingnamespacestd;
#definerandom(x)(rand()%x);
inta[10];//合并排序函数浙商银行面试。
voidMerge(intleft,intmid,intright){
intt[11];
inti=left,j=mid+1蕾梦娜,k=0;
while((i<=mid)&&(j<=right)){
if(a[i]<=a[j])
t[k++]=a[i++];
else
t[k++]=a[j++];
}
while(i<=mid)
t[k++]=a[i++];
while(j<=right)
t[k++]=a[j++];
for(i=0,k=left;k<=right;)
a[k++]=t[i++];
}//分划函数,并且调用合并函数初一作文网。
voidMergeSort(intleft,intright){
if(left
intmid=((left+right)/2);
MergeSort(left男生短发发型设计,mid);
MergeSort(mid+1电话本怎么用,right);
Merge(left,mid淘宝网购物鞋,right);//调用合并函数。
}
}
intmain(){
inti;
cout<<"排序前的数组为:";
for(i=0;i<10;i++){
a[i]=random(100);//调用random函数,产生10个0-100的随机数。
}
cout<
MergeSort(0,9);
cout<<"排序后的数组为:";
for(i=0;i<10;i++){
}
getchar();
return0;
}
五、实验结果截图
六、实验总结
通过编写这个程序牛津高中英语,我进一步了解了分株算法的思想,在实际运用过程当中三字经 朗诵,尤其是在算法
编写方面相对来说比较简单用字母表示数教案,实现起来较为容易。
实验2贪心法作业调度
一、实验目的
1.掌握贪心算法的基本思想
2.掌握贪心算法的典型问题求解
.进一步多级调度的基本思想和算法设计方法
4.学会用贪心法分析和解决实际问题
二、实验容
设计贪心算法实现作业调度,要求按作业调度顺序输出作业序列。如已知n=8同学录留言,效益
p=(5let me go什么意思,0,25微微一笑很倾城杨洋,20可贵的近义词,15梦见发大水,109月号阅兵,5成长不烦恼作文,1)学计算机,时间期限d=(4,2,4,5,6,4放不下 郁可唯,5,7),求该条件下的最大效益。
三、实验环境
Window10;惠普笔记本;Devcpp
四、算法描述和程序代码
#include
usingnamespacestd;
ctintWork[8]={45,0关于汉字的手抄报,28,25王冕墨梅,2慌张的反义词是什么,15,10,1};//所有作业按收益从大到小排序
ctintmaxTime[8]={4,7血顶,,2大班语言活动说课稿,4,6中考复读,7,5};
classHomeWork{
private:
intres[8];
boolflag[8];
intmaxReap;
public:
voiddealWith(){
//遍历所有作业:
inti;
for(i=0;i<8;i++){
intTime=maxTime[i]-1;
if(!flag[Time]){
//如果最大期限那一天还未安排作业,则将当前作业安排在所允许的最大
期限那天
res[Time]=Work[i];
flag[Time]=true;
}
else{
//如果当前作业所允许的最大期限那一天已经安排的其他作业,就向前搜
索空位,将该作业安排进去
for(intj=Time-1;j>=0;j--)
if(!flag[j]){
res[j]=Work[i];
flag[j]=true;
break;
}
}
}
cout<<"作业完成顺序为:";
for(i=0;i<7;i++){
cout<
}
cout<
cout<
intj;
for(j=0;j<7;j++)
maxReap+=res[j];
cout<
}
HomeWork(){
inti;
for(i=0;i<8;i++)
flag[i]=false;
maxReap=0;
}
};
intmain(){
HomeWorka=HomeWork();
th();
getchar();
return0;
}
五、实验结果截图
六、实验总结
通过这个实验让我知道了闫新算法在实际当中的运用,也让我了解到了贪心算法的便捷以及
贪心算法的实用性
实验动态规划法求多段图问题
一、实验目的
1张继科视频.掌握动态规划算法的基本思想
2平安夜吃苹果的由来.掌握多段图的动态规划算法
.选择邻接表或邻接矩阵方式来存储图
4.分析算法求解的复杂度
二、实验容
设G=(V,E)是一个带权有向图北京教堂,其顶点的集合V被划分成k>2个不相交的子集Vi,1
其中V1和Vk分别只有一个顶点s(源)和一个顶点t(汇)设计专业大学排名。图中所有边的始点和终点都
在相邻的两个子集Vi和Vi+1中作文我的乐园400字左右四年级下册。求一条s到t的最短路线。参考课本P124图7-1中的多段
图亲亲小兔,试选择使用向前递推算法或向后递推算法求解多段图问题。
三、实验环境
Window10;惠普笔记本;Devcpp
四、算法描述和程序代码
#include
intV[50][50];
inta[50]晨雪,b[20];
intstatick,n,m;
voidcreateGraph()
{
inti,j,t,s;
printf("请输入结点数:");
scanf("%d",&n);
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
V[i][j]=0;//初始化V[i][j]=0如何去脸上的斑,表示两结点没有边相连
printf("输入图的层数:");
scanf("%d",&k);
printf("请输入每层的结点数的最大编号:");
a[0]=0;
for(i=1;i<=k;i++)
scanf("%d",&a[i]);
printf("请输入边数:");
scanf("%d",&m);
printf("请输入结点之间的关系(如:结点i和结点j的距离为s,则输入i,jfear,s)n");
for(t=1;t<=m;t++)
{
scanf("%d%d%d",&i,&j描写雨的好段,&s);
V[i][j]=s;
}
}
intBackward()//向后求解法
{
inti,j,t,r;
for(i=a[1]+1;i<=a[2];i++)//把第二层每个结点i与第一层结点s的边距赋值给V[i][i]
V[i][i]=V[1][i];
for(r=2;r
for(i=a[r-1]+1;i<=a[r];i++)//遍历第r层的每个结点i与第(r+1)层结点j之间的边距,
选择此刻最优解
for(j=a[r]+1;j<=a[r+1];j++)
{
if(V[i][j]!=0&&V[j][j]==0)//第一次把此刻路径长度赋给V[j][j]
V[j][j]=V[i][i]+V[i][j];
elseif(V[i][j]!=0&&V[j][j]!=0)
{
if((V[i][i]+V[i][j])
V[j][j]=V[i][i]+V[i][j];
}
}
j=-1;
b[4]=0;
for(r=k-1;r>=2;r--)
for(i=a[r]+1;i<=a[r+1];i++)
{
if(b[r]==j)
break;
for(j=a[r-1]+1;j<=a[r];j++)
if((V[i][i]-V[j][i])==V[j][j])
{
b[r]=j;
break;
}
}
returnV[n][n];
}
intForward()//向前求解法
{
inti,j平面设计师工作总结,t,r;
for(i=a[k-2]+1;i<=a[k-1];i++)//把第二层每个结点i与第一层结点s的边距赋值给V[i][i]
V[i][i]=V[i][a[k]];
for(r=k-1;r>1;r--)//向前逐层求解
for(j=a[r-1]+1;j<=a[r];j++)//遍历第r层的每个结点i与第(r-1)层结点j之间的边距非主流头像图片,
选择此刻最优解
for(i=a[r-2]+1;i<=a[r-1];i++)
{
if(V[i][j]!=0&&V[i][i]==0)//第一次把此刻路径长度赋给V[j][j]
V[i][i]=V[j][j]+V[i][j];
elseif(V[i][j]!=0&&V[i][i]!=0)
{
if((V[j][j]+V[i][j])
V[i][i]=V[j][j]+V[i][j];
}
}
for(r=2;r<=k-1;r++)
for(i=a[r-2]+1;i<=a[r-1];i++)
{
for(j=a[r-1]+1;j<=a[r];j++)
if((V[i][i]-V[i][j])==V[j][j])
{
b[r]=j;
break;
}
i=j;
r++;
}
returnV[1][1];
}
intmain()
{
inti以瞬间为话题的作文,j关于长征的小故事,r地巴唑,sp;
createGraph();
b[1]=1;
b[k]=n;
//sp=Forward();
sp=Backward();
printf("最短路径长度为:%dn"北京奥运会赛程,sp);
printf("最短路径为:");
printf("%d",b[1]);
for(i=2;i<=k;i++)
printf("->%d",b[i]);
return0;
}
五、实验结果截图
六、实验总结
这个实验让我从中懂得了动态规划算法的核心今晚的流星雨,更加收敛的运用动态规划算法秋节各类问
题正能量的句子 人生感悟 努力工作,但动态规划算法最重要的还是方程的选择,这个在实际运用中相当重要生长素的发现。
实验4回溯法求n皇后问题
一、实验目的
1广东农业大学.掌握回溯算法的基本思想
2.通过n皇后问题求解熟悉回溯法
最新平板电脑.使用蒙特卡洛方法分析算法的复杂度
二、实验容
要求在一个8*8的棋盘上放置8个皇后继承法司法解释,使得它们彼此不受“攻击”财务管理实习报告。两个皇后位于棋盘上
的同一行、同一列或同一对角线上中秋赏月作文400字,则称它们在互相攻击南扣肉是什么地方的菜。现在要出使得棋盘上8个皇后
互不攻击的布局。
三、实验环境
Window10;惠普笔记本;Devcpp
四、算法描述和程序代码
#include
#include
usingnamespacestd;
#define8
intres[100][8];
intcountRes=0;
boolPlace(intk数字签名算法,inti,int*x){
for(intj=0;j
if(x[j]==i||abs(x[j]-i)==abs(j-k))
returnfalse;
returntrue;
}
voidQueen(intk年度考核述职报告,intn中国梦手抄报资料,int*x){
for(inti=0;i
if(Place(k,i,x)){
x[k]=i;
if(k==n-1){
for(i=0;i
res[countRes][i]=x[i];
cout<
}
countRes++;
cout<
}else{
Queen(k+1乔布斯英文简介,n,x);
}
}
}
voidQueen(intn,int*x){
Queen(0,n金环日食,x);
}
intmain(){
intx[];
for(inti=0;i<;i++)
*(x+i)=-10;
Queen(横头山,x);
cout<
charshow;
cout<<"是否显示图示?(Y/)"<
cin>>show;
if(show=='Y'||show=='y'){
for(intn=0;n
cout<<"第"<
for(inti=0;i<;i++){
for(intj=0;j<;j++){
if(res[n][i]==j)
cout<<"Q"<<"t";
else
cout<<"*"<<"t";
}
cout<
}
}
}
return0;
}
五、实验结果截图
六、实验总结
在n皇后问题中可以看出回溯算法求出的是这个问题的所有解车猫证书,而不是单纯地求出了这个问
题所产生的最优解介绍我自己作文,这样对于我们在实际运用方面十分实用有关秋天的句子。
然后用合并排序将该数组做升序排列珍珠泉
k=0;while((i
然后用合并排序将该数组做升序排列珍珠泉
三
j=mid+1蕾梦娜
要求输出排序前和排序后的数组薛之谦跨年演唱会
intmid
k=0;while((i