欢迎来到天天文库
浏览记录
ID:61499646
大小:65.50 KB
页数:6页
时间:2021-02-07
《数据结构 排序算法设计和比较.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《数据结构》实验报告五专业:自动化班级:0710学号:姓名:日期:2009.12.15程序:排序算法设计比较实验五 排序算法设计和比较【实验内容与要求】问题描述:利用直接插入排序、冒泡排序、快速排序对数列进行排序。基本要求:(1)能随机生成30个值为0到100的数。(2)用于排序的输入数列可以是要求(1)中随机生成的,也可以是键盘输入。(3)输出结果为利用三种方法排序后的结果,并能显示三种算法时间、空间性能参数值。【测试数据】由随机自行生成若干个数,进行排序。二、程序设计的基本思想,原理和算法描述:(包括程序的结构,数据结构,输入/输出设计,
2、符号名说明等)1)符号说明:m1,m2,m3代表三种排序法的循环次数a[],b[],c[]分别用来存储三次排序的数据temp中间变量n参与排序的数字个数maopao(a,n)冒泡程序排序zhicha(b,n)直接插入排序quick(a,h,l)快速排序法h分块排序的上限l分块排序的下限2)程序说明(结构,输入输出)这个程序整个流程比较自然,一脉相传,即先输入要排序的个数,然后选择要输入的方式,将产生的数传到数组中,然后依次地用冒泡子程序,直接插入的程序,快速排序的方法,依次排序,并将排好的数输出,以及算法的时间复杂率。三、源程序及注释:#in
3、clude"stdio.h"#include"time.h"intm1=0;全局变量定义冒泡法循环的次数intm2=0;全局变量定义直接插入法循环的次数intm3=0;全局变量定义快速法循环的次数intsuiji(inta[],intn);随机生成目的数函数{inti,j,temp;srand((unsigned)time(NULL));srand播下一个种子for(i=0;i4、tn)键盘输入目的数函数{inti,j,k,l;for(i=0;ia[j-1]){temp=a[j];a[j]=a[j-1];a[j-1]=temp;}m1++;计算循环次数}printf("Bubbathesortednember5、:");for(i=0;i0&&temp>b[j-1];--j)具体排序过程{b[j]=b[j-1];m2++;}b6、[j]=temp;}for(i=0;i7、[i]>temp){i++;m3++;}if(i8、输入的方式if(k==1)k=1则调用随机函数调用{suiji(a,n);}if(k==2)k=2则调用键盘输入函数{jianpan(a,n);}for(i=0;i
4、tn)键盘输入目的数函数{inti,j,k,l;for(i=0;ia[j-1]){temp=a[j];a[j]=a[j-1];a[j-1]=temp;}m1++;计算循环次数}printf("Bubbathesortednember
5、:");for(i=0;i0&&temp>b[j-1];--j)具体排序过程{b[j]=b[j-1];m2++;}b
6、[j]=temp;}for(i=0;i7、[i]>temp){i++;m3++;}if(i8、输入的方式if(k==1)k=1则调用随机函数调用{suiji(a,n);}if(k==2)k=2则调用键盘输入函数{jianpan(a,n);}for(i=0;i
7、[i]>temp){i++;m3++;}if(i8、输入的方式if(k==1)k=1则调用随机函数调用{suiji(a,n);}if(k==2)k=2则调用键盘输入函数{jianpan(a,n);}for(i=0;i
8、输入的方式if(k==1)k=1则调用随机函数调用{suiji(a,n);}if(k==2)k=2则调用键盘输入函数{jianpan(a,n);}for(i=0;i
此文档下载收益归作者所有