资源描述:
《数据结构课程设计--基数排序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、北京理工大学珠海学院计算机科学技术学院前言通过这次数据结构课程设计,我更加了解了数据结构这门课程!我认为要学好数据结构这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。可见数据结构的课程设计对我们来说是受益匪浅,我们一定要认真对待,希望我们打好扎实的专业基础。数据结构的课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,算法日益增加,并且不断改进,所以我们要将它学好,作为以后工作
2、的一个工具。“数据结构”是计算机程序设计的重要理论技术基础,它不仅是计算机学科的核心课程,而且已成为其他理工专业的热门选修课。排序是计算机程序设计中的一种重要操作,他的功能是对一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。由于待排序的记录数量不同,似的排序工程中设计的存储器不用,可将排序方法分两大类:一类是内部排序,一类是外部排序。其中基数排序的内部排序。——————第9页——————北京理工大学珠海学院计算机科学技术学院2.概要设计2.1数据结构设计本程序是用C语言来实现。以下为数组的定义的结构
3、体:#defingMAX_NUM_OF_KEY8#defineRADIX10#defineMAX_SPACE10000Typedfstruct{KeysTypekeys[MAX_NUM_OF_KEY];InfoTypeotheritems;Intnext;}SLCell;Typedefstruct{SLCellr[MAX_SPACE];Intkeynum;Intrecnum;}SLList;——————第9页——————北京理工大学珠海学院计算机科学技术学院2.2算法设计TypedefintArrType[RADIX]
4、;VoidDistribute(SLCell&r,inti,ArrType&f,ArrType&e)for(j=0;j5、t=f[j];t=e[j];while(j6、(L.r,i,f,e);}}//RadixSort}(1)算法描述输入无序序列,进行最低优先法的基数排序。(2)时间复杂度分析O(n)=O(d(n+rd))——————第9页——————北京理工大学珠海学院计算机科学技术学院2.3ADT描述ADTArray{数据对象:ji=0,…,bi-1,i=1,…,n,D={aiai∈ElemSet,i=1,2,…,n,n>=0}数据关系:R={R1,R2,…Rn}{Riai-1,ai∈D,i=2,…,n}基本操作:StatusInitArray(&S);操作结果
7、:构造一个数组S。Value(A,&e,index1,…indexn);初始条件:A是n维数组,e是元素变量,随后是n个下标值。操作结果:若各个下标不超界,则将e的值赋给所指定的A的元素,并返回OK。}ADTArray——————第9页——————北京理工大学珠海学院计算机科学技术学院2.4功能模块分析1.构建3个数组intdata[10];inttemp[10][10];intorder[10]={0,0,0,0,0,0,0,0,0,0};2.最低位优先法基数排序while(n<=10){for(i=0;i<10;i
8、++){lsd=((data[i]/n)%10);temp[lsd][order[lsd]]=data[i];order[lsd]++;}printf("access:");for(i=0;i<10;i++){if(order[i]!=0)for(j=0;j