下载此文档

太原理工大学算法设计与分析报告实验报告材料.doc


文档分类:高等教育 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
word
word
1 / 12
word
本科实验报告
课程名称: 算法设计与分析
实验项目:分治法合并排序
贪心法作业调度
动态规划法求多段图问题
回溯法求n皇后问题
实验地点: 致远楼B503
专业班级:学号:
学生:
指导教师:
2017年3月18日
word
word
2 / 12
word
实验1 分治法合并排序
一、实验目的

2. 掌握合并排序的实现方法


二、实验容
随机产生一个整型数组,然后用合并排序将该数组做升序排列,要求输出排序前和排序后的数组。
三、实验环境
Window10;惠普笔记本;Dev cpp
算法描述和程序代码
#include<>
#include<iostream>
#include<>
#include<>
using namespace std;
#define random(x)(rand()%x);
int a[10];//合并排序函数。
void Merge(int left, int mid, int right) {
int t[11];
int i = 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++];
}//分划函数,并且调用合并函数。
void MergeSort(int left, int right) {
if (left < right) {
int mid = ((left + right) / 2);
word
word
3 / 12
word
MergeSort(left, mid);
MergeSort(mid + 1, right);
Merge(left, mid, right); //调用合并函数。
}
}
int main() {
int i;
cout << "排序前的数组为:";
for (i = 0; i < 10; i++) {
a[i] = random(100); //调用random函数,产生10个0-100的随机数。
cout << a[i] << " ";
}
cout << endl;
MergeSort(0, 9);
cout << "排序后的数组为:";
for (i = 0; i < 10; i++) {
cout << a[i] << " ";
}
getchar();
return 0;
}
五、实验结果截图
六、实验总结
通过编写这个程序,我进一步了解了分株算法的思想,在实际运用过程当中,尤其是在算法编写方面相对来说比拟简单,实现起来较为容易。
word
word
4 / 12
word
实验2 贪心法作业调度
一、实验目的


3. 进一步多级调度的根本思想和算法设计方法
4. 学会用贪心法分析和解决实际问题
二、实验容
设计贪心算法实现作业调度,要求按作业调度顺序输出作业序列。如n=8,效益p=(35, 30, 25, 20, 15, 10, 5, 1),时间期限 d=(4, 2, 4, 5, 6, 4, 5, 7),求该条件下的最大效益。
三、实验环境
Window10;惠普笔记本;Dev cpp
四、算法描述和程序代码
#include <iostream>
using namespace std;
const int Work[8] = { 45,30,28,25,23,15,10,1 };//所有作业按收益从大到小排序
const int maxTime[8] = { 4,7,3,2,4,6,7,5 };
class HomeWork

太原理工大学算法设计与分析报告实验报告材料 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人beny00001
  • 文件大小133 KB
  • 时间2021-12-08
最近更新