




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include #include #include #include #define MAXSIZE 100/*定义和初始化顺序表*/typedef int DataType;typedef struct node DataType dataMAXSIZE;int length;SeqList,*PseqList;/定义一个顺序表。PseqList Init_SeqList(voidPseqList PL;PL=(PseqListmalloc(sizeof(SeqList;if(PLPL->length=0;return(PL;/顺序表的初始化./*直接插入排序*/void Strai
2、ghtInsertSort(SeqList *sint i,j;for(i=2;i length;i+ s->data0=s->datai;for(j=i-1;s->data0 dataj;j- s->dataj+1=s->dataj;s->dataj+1=s->data0;/*快速排序*/int QuickSort1(SeqList *s,int low,int highs->data0=s->datalow;while(low while(low datahigh>=s->data0 high-;s->datalow=
3、s->datahigh;while(low datalow<=s->data0 low+;s->datahigh=s->datalow;s->datalow=s->data0;return low;void QuickSort(PseqList s,int low,int highint m;if(low m=QuickSort1(s,low,high;QuickSort(s,low,m-1;QuickSort(s,m+1,high;/*大根堆排序*/void HeapAdjust(SeqList *s,int n,int mint i,j;s->
4、;data0=s->datan;i=n;for(j=2*i;j<=m;j=j*2if(j dataj dataj+1 j+;if(s->data0>s->dataj break;s->datai=s->dataj;i=j;s->datai=s->data0;void HeapSort(SeqList *sint i;for(i=s->length/2;i>0;i-HeapAdjust(s,i,s->length-1;for(i=s->length-1;i>1;i-s->data0=s->data1;
5、s->data1=s->datai;s->datai=s->data0;HeapAdjust(s,1,i-1;/*归并排序*/ void Merge(DataType r,DataType rf,int u,int v,int tint i,j,k;for(i=u,j=v+1,k=u;i<=v&&j<=t;k+if(ri<=rjrfk=ri;i+;else rfk=rj;j+;while(i<=v rfk+=ri+;while(j<=t rfk+=rj+;void MSort(DataType p,DataType p1,i
6、nt n,int tint m;DataType p2MAXSIZE+1;if(n=tp1n=pn;else m=(n+t/2;MSort(p,p2,n,m;MSort(p,p2,m+1,t;Merge(p2,p1,n,m,t;void MergeSort(PseqList sMSort(s->data,s->data,1,s->length-1;/*主函数*/void main(PseqList p;int i,n=0;srand(unsignedtime(NULL;p=Init_SeqList(;for(i=1;i<=20;i+ p->datai=rand(%
7、20+1;p->length=i;printf("输 出 原 序 列:n"for(i=1;i length;i+ printf("%3d",p->datai; while(n=0|n=1|n=2|n=3|n=4printf("n请选择:1.直接插入排序;2.快速排序;3.大根堆排序;4.归并排序;其它退出n"n=0;scanf("%d",&n;switch(ncase 1:StraightInsertSort(p;printf("输出直接插入排序后序列:n"break;case 2:QuickSort(p,1,p->length-1;printf("输出快速排序序列:n"break;case 3:HeapSort(p;printf("输出大根堆排序序列:n"break;case 4:MergeSort(p; printf("输出归并排序序列:n"break;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023-2024学年辽宁大石桥八年级上期末模拟物理卷【含答案】
- 房屋合同纠纷预防与解决四
- 劳动合同男方提出终止合约
- 设备租赁预付款合同
- 货车租赁公司合同范本
- 装修材料采购合同模板
- 2《以礼待人》公开课一等奖创新教学设计
- 中国古典舞的审美特征
- 医院总值班管理控制
- 八年级生物上册 15.2《动物运动的形成》教学设计 (新版)北师大版
- 老年患者髋部骨折围手术期麻醉管理
- 高处坠落事故案例及事故预防安全培训
- 2023输煤专业考试题库全考点(含答案)
- 《最后一片叶子》课件 2024年高教版(2023)中职语文基础模块上册
- 23秋国家开放大学《视觉设计基础》形考任务1-5参考答案
- 河南观光小火车策划方案
- GMP-净化空调系统管理制度
- 《隧洞回填灌浆》课件
- 员工考核PK协议书
- 居住权协议书
- 我是少年阿凡提课件
评论
0/150
提交评论