下载此文档

太原理工大学算法实验报告材料.doc


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




二、实验容
随机产生一个整型数组,然后用合并排序将该数组做升序排列,要求输出排序前和排序后的数组。
三、实验环境
程序设计语言:c++
编程工具:microsoft visual studio 2013
四、程序代码
#include ""
#include<iostream>
#include<cassert>
#include""
using namespace std;
template<typename T>
void mergeSort(T arr[],int n)
{_mergeSort(arr,0,n-1);}
template<typename T>
void __mergeSort(T arr[],int l,int r)
{
if(l>=r)
return;
int mid=(l+r)/2;
__mergeSort(arr,l,mid);
__mergeSort(arr,mid+1,r);
if(arr[mid]>arr[mid+1])
__merge(arr,l,mid,r);
}
template<typename T>
void __merge(T arr[],int l,int mid,int r)
{
T *aux=new T[r-l+1];
word
word
3 / 12
word
for(int i=l;i<=r;i++)
aux[i-l]=arr[i];
int i=l,j=mid+1;
for(int k=l;k<=r;k++)
{
if(i>mid)
{
arr[k]=aux[j-l];
j++;
}
else if(j>r)
{
arr[k]=aux[i-l];
i++;
}
else if(aux[i-l]<aux[j-l])
{
arr[k]=aux[i-l];
i++;
}
else{
arr[k]=aux[j-l];
j++;
}
}
delete[] aux;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n=10;
int *arr=SortTestHelper::generateRandomArray(n,0,n);
cout<<"未排序的数组为:";
for(int j=0;j<10;j++)
cout<<arr[j]<<" ";
cout<<endl;
mergeSort(arr,10);
cout<<"经过排序的数组为:";
for(int i=0;i<9;i++)
cout<<arr[i]<<" ";
cout<<endl;
}
word
word
4 / 12
word
#include""
#include<iostream>
#include<ctime>
#include<cassert>
using namespace std;
namespace SortTestHelper{
int *generateRandomArray(int n,int randL,int randR)
{
assert(randL<=randR);
int *arr=new int[n];
for(int i=0;i<n;i++)
arr[i]=rand()%(randR-randL+1)+randL;
return arr;
}
}
五、实验结果截图
六、实验总结
一定要先找到递归函数式后,设计递归程序
word
word
5 / 12
word
实验二贪心法多机调度
实验目的
1. 掌握

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

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