欢迎来到天天文库
浏览记录
ID:6789282
大小:59.50 KB
页数:18页
时间:2018-01-25
《数据结构课程设计-排序与查找》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、北京信息科技大学课程设计报告课程名称数据结构课程设计题目排序与查找指导教师设计起止日期设计地点系别信息管理学院专业__信息管理与信息系统_姓名/学号______鲁丹__—18—1.课程实践目的:通过本实践使学生对各类排序算法有更深入的了解,在实际应用中学会使用排序算法解决具体问题。2.课程实践内容:a)随机产生20个0—100之间的整数,允许有重复b)分别利用直接插入排序、直接选择排序、快速排序、双向起泡排序对这20个数进行排序(递增递减均可),并统计在各种排序方法中关键字的比较次数,最后输出各类排序方法的排序结果及关键字的比较次数。提示:双向起泡排序是对标准起泡排序算法的改进,该方法
2、第一次自上而下进行“起泡”,使最大元素“下沉”到底,第二次自下而上进行“起泡”,使最小元素“上浮”到顶,之后又重复上述过程,每趟起泡后都会相应缩小下一趟的起泡排序区间,直至排序完成。起泡期间可以通过对某趟“起泡”的“最后交换位置”进行记忆,以尽可能快地缩短下一趟的“起泡”区间。c)用折半查找法在前面的已排好序的数据表上查找,是否有此数,如有,输出其序号。如没有,在屏幕给出提示信息。3.实践步骤:#include#include#include#defineN100#defineOK1#defineERROR0#defineLIST_
3、INIT_SIZE100#defineLISTINCREMENT10—18—#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;typedefintElemType;typedefstruct{ElemType*elem;intlength;intlistsize;}List;StatusInitList(List&L){L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));L.length=0;L.listsize=LIST_INIT_SIZE;returnOK;}//
4、InitListvoidCreate(List&L,intn){—18—inti;srand(time(NULL));for(i=0;i=L.elem[j])—18—m++;elsem++;while((j>=0)&&(t5、.elem[j];j--;}L.elem[j+1]=t;}returnm;}intSelectSort(ListL){inti,j,k,min,t=0;for(i=0;i6、4=0;—18—if(si&&L.elem[j]>=L.elem[0]){j--;count4++;}if(i7、eSort(ListL){intflag,i,j;intt=0;flag=1;while(flag==1)—18—{flag=0;i=0;for(j=L.length-i;j>i;j--){if(L.elem[j-1]>L.elem[j]){flag=1;intm;m=L.elem[j];L.elem[j]=L.elem[j-1];L.elem[j-1]=m;t++;}elset++;}}returnt;}voiddisplay(ListL)—
5、.elem[j];j--;}L.elem[j+1]=t;}returnm;}intSelectSort(ListL){inti,j,k,min,t=0;for(i=0;i6、4=0;—18—if(si&&L.elem[j]>=L.elem[0]){j--;count4++;}if(i7、eSort(ListL){intflag,i,j;intt=0;flag=1;while(flag==1)—18—{flag=0;i=0;for(j=L.length-i;j>i;j--){if(L.elem[j-1]>L.elem[j]){flag=1;intm;m=L.elem[j];L.elem[j]=L.elem[j-1];L.elem[j-1]=m;t++;}elset++;}}returnt;}voiddisplay(ListL)—
6、4=0;—18—if(si&&L.elem[j]>=L.elem[0]){j--;count4++;}if(i7、eSort(ListL){intflag,i,j;intt=0;flag=1;while(flag==1)—18—{flag=0;i=0;for(j=L.length-i;j>i;j--){if(L.elem[j-1]>L.elem[j]){flag=1;intm;m=L.elem[j];L.elem[j]=L.elem[j-1];L.elem[j-1]=m;t++;}elset++;}}returnt;}voiddisplay(ListL)—
7、eSort(ListL){intflag,i,j;intt=0;flag=1;while(flag==1)—18—{flag=0;i=0;for(j=L.length-i;j>i;j--){if(L.elem[j-1]>L.elem[j]){flag=1;intm;m=L.elem[j];L.elem[j]=L.elem[j-1];L.elem[j-1]=m;t++;}elset++;}}returnt;}voiddisplay(ListL)—
此文档下载收益归作者所有