数据结构实验三报告.docx
- 文档编号:9597448
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:8
- 大小:270.45KB
数据结构实验三报告.docx
《数据结构实验三报告.docx》由会员分享,可在线阅读,更多相关《数据结构实验三报告.docx(8页珍藏版)》请在冰豆网上搜索。
数据结构实验三报告
数据结构与算法分析
实验报告
实验题目:
内排序算法速度的比较
学生姓名:
学号:
任课教师:
实验时间:
2015/6/16
一、实验目的和要求
1.编程实现一种慢速排序算法(冒泡排序);
2.编程实现一种快速排序算法(Quicksort);
3.掌握如何分析时间复杂度
二、实验内容
1.随机产生N(N=10000)个0~99之间的整数,分别用你实现的慢速、快速排序算法对产生的N个整数进行排序,输出排序所需要的时间,以及排序完成后第1个、第100个、第1000个、第10000个数的值。
2.当N=100000时,重新完成排序,并计算时间。
3.比较N=10000和N=100000的排序所需要的时间,分析排序算法时间复杂度与规模N的关系,得出你的结论。
三、实验过程
1、
(1)N=10000时,冒泡排序
#include
#include
#include
constintN=10000;
voidmain()
{
LARGE_INTEGERbegin,end,freq;
doubletime;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&begin);
intarray[N];
inti=0;
for(i=0;i array[i]=rand()%100;/*随机产生一万个数*/ intj=0; intt=0; intf=0; for(i=0;i { f=0;/*本趟排序开始前,交换标志应为假*/ for(j=N-1;j>i;j--)/*内循环控制一趟排序的进行*/ { if(array[j] { t=array[j]; array[j]=array[j-1]; array[j-1]=t; f=1;/*发生了交换,故将交换标志置为真*/ } } if(f==0)/*本趟排序未发生交换,提前终止算法*/ break;} /* printf("第%d趟排序结果: \n",i+1); PrintArray(array,n); */ intk; for(k=0;k cout< cout<<"第100,第1000,第10000个数是: "< cout< QueryPerformanceCounter(&end); time=(end.QuadPart-begin.QuadPart)/(double)freq.QuadPart; cout< } 输出结果为: (2)N=10000时,快速排序(希尔排序) #include #include #include constintn=10000; voidmain() { LARGE_INTEGERbegin,end,freq; doubletime; QueryPerformanceFrequency(&freq); QueryPerformanceCounter(&begin); inta[n]; for(intp=0;p {a[p]=rand()%100;} inti,j,gap; for(gap=n/2;gap>0;gap/=2) for(i=0;i { for(j=i+gap;j if(a[j] { inttemp=a[j]; intk=j-gap; while(k>=0&&a[k]>temp) { a[k+gap]=a[k]; k-=gap; } a[k+gap]=temp; } } for(intk=0;k cout< QueryPerformanceCounter(&end); time=(end.QuadPart-begin.QuadPart)/(double)freq.QuadPart;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 报告