多关键字排序_第1页
多关键字排序_第2页
多关键字排序_第3页
多关键字排序_第4页
多关键字排序_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构课程设计姓名:刘欢学号:201001051118班级:信管10-1班成绩:信息科学与工程学院2012年6月30日多关键字排序的实现的实现一、需求分析对于排序我们已经不陌生了,但是我们接触的大多都是单个关键字的排序,这是很好实现的,但是对于多关键字排序就不是接触的很多。本文就多关键字进行排序,同时多关键字在实际生活中也是常用的,比如我们高考成绩的排名,就有很多分数一样的,但是排名却是唯一的,这里就用到了多关键字排序。二、概要设计抽象数据类型ADT数据对象:D=aIaeint,i=l,2,3.n,n0ii数据关系:R=|a,aeD,aa,i=2.ni-1ii-1ii-1i基本操作:void

2、Init(Multkeyarray,intn)操作结果:用随机数初始化一个多关键字的数组基本操作:intcompareTo(Multkeya,Multkeyb)操作结果:比较a和b的大小,a大于b返回1,a小于b返回-1,a等于b返回0;基本操作:voidswap(Multkey&a,Multkey&b)操作结果:交换a,b两个值。基本操作:voidprintMultkey(Multkeyarray,intsize,intn)操作结果:打印多关键字数组array基本操作:voidBubbleSort(Multkeyarray,intsize)操作结果:对多关键字数组进行冒泡排序主函数的设计In

3、tmain()初始化一个多关键字数组打印未排序的数组进行多关键字的冒泡排序打印排序后的数组三、详细设计1.元素类型、节点类型#defineNUMBER3/多关键字的个数constintN=5;/初始化数组的个数structMultkeyintkeyNUMBER;/多关键字结构体2.函数的具体实现voidInit(Multkeyarray,intn)/用随机数初始化一个多关键字数组srand(unsigned)time(NULL);for(inti=0;in;+i)for(intj=0;jNUMBER;+j)arrayi.keyj=rand()%20+1;intcompareTo(Multkey

4、a,Multkeyb)比较a和b的大小,a大于b返回1,a小于b返回-1,a等于b返回0;for(inti=0;ib.keyi)return1;/a大于belseif(a.keyib.keyi)return-1;/a小于belsecontinue;return0;/两个值相等voidswap(Multkey&a,Multkey&b)交换两个数Multkeyt=a;a=b;b=t;voidprintMultkey(Multkeyarray,intsize,intn)/打印一个多关键字数组for(inti=0;isize;+i)for(intj=0;jn;+j)coutarrayi.keyj;if

5、(j=n-1)coutendl;/打印完一个元素,换行voidBubbleSort(Multkeyarray,intsize,intn)/对多关键字数组进行冒泡排序for(inti=0;isize;+i)z-*/for(intj=i;j0)swap(arrayi,arrayj);elsecontinue;四、调试分析1本程序是在codeblocks编译器之下调试的,使用的主语言是C+语言,对于其中的一些不同于c语言的地方可以很明显的发现出来,在者是,本程序中使用的参数部分是引用类型的。2此程序是在C+为主语言的环境中编译的,但是还是使用了C语言的函数如Rand函数,time.h,stdlib.h头文件.同时可以对应的把他们改成C+之中支持的头文件格式。虽然本程序只给出了两个关键字排序的结果,但是在程序中这个关键字的个数是可以随意修改的,只要改动宏定义的关键字个数即可。五,结果分析以下是数组大小不同的多关键字排序的结果截图未排序前的多关键字数组15913131E3B4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论