算法分析与设计题目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法分析与设计题目相关的知识,希望对你有一定的参考价值。
大家好,现在要考试了,,分不多,请大家帮帮我
1、设有n项独立的作业1,2,…, n,由m台相同的机器加工处理。作业i所需要的处理时间为ti。约定:任何一项作业可在任何一台机器上处理,但未完工前不准中断处理;任何作业不能拆分更小的子作业。多机调度问题要求给出一种调度方案,使所给的n个作业在尽可能短的时间内由m台机器处理完。设计算法。
第二题:算法理解:本大题2个小题,每小题12分,共24分。
1.写出用背包问题贪心算法解决下列实例的过程。
P=(10,6,3,2)
W=(15,12,8,3)
M=30
2.写出4皇后回溯算法的状态空间树。
第三题:简答题:
1.为什么要分析最坏情况下的算法时间复杂性?
2.简述贪心算法的基本思想
3.阐述归并排序的分治思路
4、4.写出0/1背包问题的递推式,并简述其表述的意义
第二题
1.背包问题是什么=、=我们教材不一样 不了解具体问题。。
2.4皇后
#include<iostream.h>
const int n = 4 ;
const int n_sub = n - 1 ;
int queen[n] ;
bool row[n] ;
bool passive[2*n-1];
bool negative[2*n-1];
int main()
int cur = 0 ;
bool flag = false ;
queen[0] = -1 ;
int count = 0 ;
while(cur>=0)
while(cur>=0 && queen[cur]<n && !flag)
queen[cur]++ ;
if(queen[cur] >= n)
queen[cur] = -1 ;
cur-- ;
if(cur>=0)
row[queen[cur]] = false ;
passive[queen[cur] + cur] = false ;
negative[n_sub + cur - queen[cur]] = false ;
false ;
else
if(row[queen[cur]] == false)
flag = true ;
if( passive[queen[cur] + cur] == true || negative[n_sub + cur - queen[cur]] == true)
flag = false ;
else
flag = true ;
if(flag)
if(cur == n-1)
count++ ;
row[queen[cur]] = true ;
passive[queen[cur] + cur] = true ;
negative[n_sub + cur - queen[cur]] = true ;
cur++ ;
if(cur >= n)
cur-- ;
row[queen[cur]] = false ;
passive[queen[cur] + cur] = false ;
negative[n_sub + cur - queen[cur]] = false ;
flag = false ;
cout<<n<<"皇后问题一共有"<<count<<"种解法"<<endl ;
return 0 ;
这个是代码。。。状态空间树这里画不出来。。。
第三题
你百度下基本都有的=、=。。。我百度出来不好意思贴了你自己去看下吧
比如1.的答案:
最坏情况给出了算法执行时间的上界,我们可以确信,无论给什么输入,算法的执行时间都不会超过这个上界,这样为比较和分析提供了便利。 参考技术A 第一题解:对于处理机j,用S[j] 表示处理机j已有的作业数,用P[j,k]表示处理机j的第k个作业的序号 。
1)将作业按照t[1]≥t[2]≥……≥t[n]排序
2)S[1:m]清零 j←0 //从第一个处理机开始安排
3) for i←1 to n do //安排n个作业
j←j mod m +1 //选下一个处理机
S[j]←S[j]+1;
P[j,S[j]]←i ;
Repeat
第三题:简答题:
1.为什么要分析最坏情况下的算法时间复杂性?
最坏情况下的时间复杂性决定算法的优劣,并且最坏情况下的时间复杂性较平均时间复杂性游可操作性。
2. 贪心算法的基本思想?
是一种依据最优化量度依次选择输入的分级处理方法。基本思路是:首先根据题意,选取一种量度标准;然后按这种量度标准对这n个输入排序,依次选择输入量加入部分解中。如果当前这个输入量的加入,不满足约束条件,则不把此输入加到这部分解中。
3. 阐述归并排序的分治思路。
讲数组一分为二,分别对每个集合单独排序,然后将已排序的两个序列归并成一个含n个元素的分好类的序列。如果分割后子问题还很大,则继续分治,直到一个元素。
我也仅找到这些,一起努力吧,我也考这门。
以上是关于算法分析与设计题目的主要内容,如果未能解决你的问题,请参考以下文章