欢迎来到天天文库
浏览记录
ID:49620588
大小:115.50 KB
页数:10页
时间:2020-03-02
《查找排序实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验三查找、排序实验报告一、实验目的1掌握不同的查找和排序方法,并能用高级语言实现相应算法。2熟练掌握二分查找方法。3熟练掌握直接插入排序、选择排序、冒泡排序、快速排序、二分插入排序。二、实验内容1创建给定的静态查找表。表中共包含十条学生信息,信息如下:学号姓名班级C++数据结构1王立0351185762张秋0351178883刘丽0351190794王通0351175865赵阳0351160716李艳0351158687钱娜0351195898孙胜0351145602使用顺序查找方法,从查找表中
2、查找姓名为赵阳和王夏的学生。如果查找成功,则显示该生的相关信息;如果查找不成功,则给出相应的提示信息。3使用快速排序方法,对学生信息中的学号进行排序,然后使用二分查找方法,从查找表中查找学号为7和12的学生。如果查找成功,则显示该生的相关信息;如果查找不成功,则给出相应的提示信息。4使用直接插入排序方法,对学生信息中的姓名进行排序。输出排序前和排序后的学生信息表,验证排序结果。5使用选择排序方法,对学生信息中的C成绩进行排序。输出排序前和排序后的学生信息表,验证排序结果。6使用冒泡排序方法,对学生
3、信息中的数据结构成绩进行排序。输出排序前和排序后的学生信息表,验证排序结果。7编写一个主函数,将上面函数连在一起,构成一个完整程序。8调试实验源程序并运行。三、程序代码#includeusingnamespacestd;#include#include#defineM100typedefstringKeytype;typedefstruct{KeytypeclassNum;Keytypename;intstudentNum;intC;intst
4、ructure;}Student;typedefstruct{Students[M];intlength;}s_t;intcreat(s_t*t,intNum){inti;t->length=Num;for(i=1;i<=t->length;i++){cout<<"请输入第"<>t->s[i].studentNum>>t->s[i].name>>t->s[i].classNum>>t->s[i].C>>t->s[
5、i].structure;}return0;}intprint(s_t*t){inti;cout<<""<<"学号"<<""<<"姓名"<<""<<"班级"<<""<<"C++成绩"<<""<<"数据结构"<<""<length;i++){cout<<""<s[i].studentNum<<""<s[i].name<<""<s[i].classNum<<""<s[i].C<<""<s[i].structure<<""<
6、s[0].name=kx;for(i=t->length;i>=0;i--)if(t->s[i].name==kx)returni;}voidInserSort(s_t*t){inti;for(i=2;i<=t->length;i++)if(t->s[i].names[i-1].name){t->s[0]=t->s[i];for(intj=i-1;t->s[0].names[j
7、].name;j--)t->s[j+1]=t->s[j];t->s[j+1]=t->s[0];}}intSelect_Sort(s_t*t){inti,j,k;for(i=0;ilength;i++){k=i;for(j=i+1;j<=t->length;j++)if(t->s[k].C>t->s[j].C)k=j;if(i!=k){t->s[0]=t->s[k];t->s[k]=t->s[i];t->s[i]=t->s[0];}}return0;}intHalf_Sort(s_t*t,i
8、ntnum){intflag=0;intlow,high,mid;low=1;high=t->length;while(low<=high){mid=(low+high)/2;if(t->s[mid].studentNum>num)high=mid-1;elseif(t->s[mid].studentNum
此文档下载收益归作者所有