- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[标签:标题]
[标签:标题]
2016
PAGE18 / NUMPAGES18
感谢观看本文谢谢
归并排序实验报告
一、实验内容:
对二路归并排序和快速排序对于逆序的顺序数的排序时间复杂度比较。
二、所用算法的基本思想及复杂度分析:
1、归并排序
1)基本思想:运用分治法,其分治策略为:
①划分:将待排序列r1,r2,……,rn划分为两个长度相等的子序列
r1,……,rn/2和rn/2+1,……,rn。
②求解子问题:分别对这两个子序列进行排序,得到两个有序子序列。
③合并:将这两个有序子序列合并成一个有序子序列。
2)复杂度分析:
二路归并排序的时间代价是O(nlog2n)。二路归并排序在合并过程中需要与原始记录序列同样数量的存储空间,因此其空间复杂性O(n)。
2、快速排序:
1)基本思想:运用分治法,其分治策略为:
①划分:选定一个记录作为轴值,以轴值为基准将整个序列划分为两个子序列
r1……ri-1和ri+1……rn,轴值的位置i在划分的过程中确定,并且前一个子序列中记录的值均小于或等于轴值,后一个子序列中记录的值均大于或等于轴值。
②求解子问题:分别对划分后的每一个子序列递归处理。
③合并:由于对子序列r1……ri-1和ri+1……rn的排序是就地进行的,所以合并不需要执行任何操作。
2)复杂度分析:
快速排序在平均时间复杂性是O(nlog2n)。最坏的情况下是O(n)。
三、源程序及注释:
1、归并排序
#include
#include
#include“windows.h”
usingnamespacestd;
voidMerge(intr[],intr1[],ints,intm,intt)
}
intMergeSort(intr[],intr1[],ints,intt)
{
}
voidmain()
inti=s;intj=m+1;intk=s;while(iinta[100000];inta1[10000];
intn,i;
intb[3]={1000,3000,5000};//产生3个数组。
for(intj=0;j{
n=b[j];
for(i=1;ia[i]=n;
LARGE_INTEGERBegainTime;LARGE_INTEGEREndTime;LARGE_INTEGERFrequency;QueryPerformanceFrequency(Frequency);QueryPerformanceCounter(BegainTime);intc=MergeSort(a,a1,0,n-1);QueryPerformanceCounter(EndTime);cout}
}
2、快速排序
#include
#include
#include“windows.h”
usingnamespacestd;
intPartition(intdata[],intfirst,intend)
{
inti,j;
}while(iintquicksort(intc[],intfirst,intend)
{
inti;if(first}}quicksort(c,i+1,end);//递归处理右区间return0;
voidmain()
{
inta[100000],n,i;
intb[3]={1000,3000,5000};//3个数据范围
for(intj=0;j{
n=b[j];
for(i=1;iLARGE_INTEGERBegainTime;LARGE_INTEGEREndTime;LARGE_INTEGERFrequency;QueryPerformanceFrequency(Frequency);QueryPerformanceCounter(BegainTime);intc=quicksort(a,0,n);QueryPerformanceCounter(EndTime);cout}
}
四、运行输出结果:
归并排序
实验报告
实验一合并排序、快速排序
一.实验目的
学习合并排序和快速排序算法的思想,掌握原理。
运用合并排序和快速排序算法的思想进行编程实现,以加深理解。
二.实验内容
输入几个整数,运用合并排序的思想进行编程实现,输出正确的排序结果。
输入10个整数,运用快速排序的思想进行编程实现,输出正确的排序结果
三.实验代码
(1)合并排序源代码如下:
#include//调用setw
#include//将b[0]至b[right-left+1]拷贝到a[left]至a[right]template
voidCopy(Ta[],Tb[],intleft,intright)
{intsize=right-left+1;
for(inti=0;i{
a[left++]=b[i];
}
}//合并
您可能关注的文档
- 应用文写作教程.ppt
- 常州供电公司:塑造品牌形象 彰显品牌价值.doc
- 建设项目评估 闫军印 第四章新.ppt
- 日本难波公园分析.ppt
- 建设项目评估 闫军印 第一章新.ppt
- 机械连接工艺评定ok.doc
- 服装品牌策划教学大纲.doc
- 平行四边形的面积教学课件.ppt
- 某SUV汽车多连杆后独立悬架设计与分析毕业论文范文免费预览.doc
- 欧尚超市营销推广策划案.doc
- 材料科学基础(中南大学)知到智慧树期末考试答案题库2024年秋中南大学.docx
- 材料力学(长安大学)知到智慧树期末考试答案题库2024年秋长安大学.docx
- 财务管理(山东财经大学)知到智慧树期末考试答案题库2024年秋山东财经大学.docx
- 财务管理——听故事,学财务(兰州现代职业学院)知到智慧树期末考试答案题库2024年秋兰州现代职业学院.docx
- 财务会计基础知到智慧树期末考试答案题库2024年秋广西金融职业技术学院.docx
- 材料力学(山东大学)知到智慧树期末考试答案题库2024年秋山东大学.docx
- 材料性能学实验知到智慧树期末考试答案题库2024年秋山东科技大学.docx
- 财务管理(安徽理工大学)知到智慧树期末考试答案题库2024年秋安徽理工大学.docx
- 材料科学基础(南方科技大学)知到智慧树期末考试答案题库2024年秋南方科技大学.docx
- 财务管理学(南昌大学)知到智慧树期末考试答案题库2024年秋南昌大学.docx
最近下载
- OMRON欧姆龙温控器 定时器 计数器凸轮定位器3F88L-160 162 3F88L-160 162 产品样本.pdf
- 消防水池(密闭空间)施工方案.doc VIP
- 曾仕强-易经的智慧.pdf
- 《Unit 6 Meet my family!》作业设计方案-小学英语人教PEP版四年级上册.docx
- 《Longji Rice Terraces》外研版英语必修一英语高中一年级课件.pptx
- HJ-固定污染源废气 硫化氢的测定 亚甲基蓝分光光度法.pdf
- 汽车转向系统转向器拆装检修.pptx VIP
- 永恒力EFG 110K 110 113 115三只点电动叉车操作手册.pdf
- 人教版地理八年级上册 全册教案.docx
- 岭南版美术八年级下册《汽车的造型》.ppt
文档评论(0)