算法分析与设计实验报告(二)-20131344102-蒋刘燃
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京信息工程大学算法设计与分析实验报告
实验内容
实验一合并排序、快速排序
一.实验目的
(1)学习合并排序和快速排序算法的思想,掌握原理。
(2)运用合并排序和快速排序算法的思想进行编程实现,以加深理解。二.实验内容
(1)输入几个整数,运用合并排序的思想进行编程实现,输出正确的排序结果。(2)输入10个整数,运用快速排序的思想进行编程实现,输出正确的排序结果三.实验代码
(1)合并排序源代码如下:
#include
#include
template
void Copy(T a[],T b[],int left,int right)
{ int size=right-left+1;
for(int i=0;i { a[left++]=b[i]; } } //合并有序数组a[left:i],a[i+1:right]到b,得到新的有序数组b template void Merge(T a[],T b[],int left,int i,int right) { int a1cout=left,//指向第一个数组开头 a1end=i,//指向第一个数组结尾 a2cout=i+1,//指向第二个数组开头 a2end=right,//指向第二个数组结尾 bcout=0;//指向b中的元素 for(int j=0;j { if(a1cout>a1end) { b[bcout++]=a[a2cout++]; continue; } //如果第一个数组结束,拷贝第二个数组的元素到b if(a2cout>a2end) { b[bcout++]=a[a1cout++]; continue; } //如果第二个数组结束,拷贝第一个数组的元素到b