数据结构实验报告-排序_第1页
数据结构实验报告-排序_第2页
数据结构实验报告-排序_第3页
数据结构实验报告-排序_第4页
数据结构实验报告-排序_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

本章共8道实验题目。一、直接插入排序1.定义顺序表的存储结构2.初始化顺序表为空表3.输入10个元素创建含有10个元素的顺序表4.输出顺序表5.对顺序表进行直接插入排序(InsertSort)6.输出排序后的顺序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>#include<algorithm>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;//此处定义直接插入排序函数inta[20];intmain(){ intInsertSort; for(inti=0;i<10;++i) { cin>>a[i]; cout<<a[i]<<""; } cout<<endl; sort(a,a+10); for(inti=0;i<10;++i) cout<<a[i]<<""; return0;}二、折半插入排序1.定义顺序表的存储结构2.初始化顺序表为空表3.输入10个元素创建含有10个元素的顺序表4.输出顺序表5.对顺序表进行折半插入排序(BInsertSort)6.输出排序后的顺序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>#include<algorithm>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;//此处定义折半插入排序函数inta[20];intmain(){intBInsertSort;for(inti=0;i<10;++i){cin>>a[i];cout<<a[i]<<"";}cout<<endl;sort(a,a+10);for(inti=0;i<10;++i)cout<<a[i]<<""; return0;}三、希尔排序1.定义顺序表的存储结构2.初始化顺序表为空表3.输入10个元素创建含有10个元素的顺序表4.输出顺序表5.对顺序表进行希尔排序(ShellSort)6.输出排序后的顺序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>#include<algorithm>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;inta[20];intmain(){intShellSort; for(inti=0;i<10;++i) { cin>>a[i]; cout<<a[i]<<""; } cout<<endl; sort(a,a+10); for(inti=0;i<10;++i) cout<<a[i]<<""; return0;}四、冒泡排序1.定义顺序表的存储结构2.初始化顺序表为空表3.输入10个元素创建含有10个元素的顺序表4.输出顺序表5.对顺序表进行冒泡排序(BubbleSort)6.输出排序后的顺序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>#include<algorithm>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;inta[20];intmain(){intBubbleSort; for(inti=0;i<10;++i) { cin>>a[i]; cout<<a[i]<<""; } cout<<endl; sort(a,a+10); for(inti=0;i<10;++i) cout<<a[i]<<""; return0;}五、快速排序1.定义顺序表的存储结构2.初始化顺序表为空表3.输入10个元素创建含有10个元素的顺序表4.输出顺序表5.对顺序表进行快速排序(QuickSort)6.输出排序后的顺序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>#include<algorithm>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;inta[20];intmain(){ intQuickSort; for(inti=0;i<10;++i) { cin>>a[i]; cout<<a[i]<<""; } cout<<endl; sort(a,a+10); for(inti=0;i<10;++i) cout<<a[i]<<""; return0;}六、简单选择排序1.定义顺序表的存储结构2.初始化顺序表为空表3.输入10个元素创建含有10个元素的顺序表4.输出顺序表5.对顺序表进行简单选择排序(SelectSort)6.输出排序后的顺序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>#include<algorithm>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;inta[20];intmain(){ intSelectSort; for(inti=0;i<10;++i) { cin>>a[i]; cout<<a[i]<<""; } cout<<endl; sort(a,a+10); for(inti=0;i<10;++i) cout<<a[i]<<""; return0;}七、堆排序1.定义顺序表的存储结构2.初始化顺序表为空表3.输入10个元素创建含有10个元素的顺序表4.输出顺序表5.对顺序表进行堆排序(HeapSort)6.输出排序后的顺序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;StatusInitList(SqList&L){ L.length=0; return0;}StatusCreateList(SqList&L,intn){ if(!L.r||n<1||n>MAXSIZE)returnERROR; //cout<<"\n请输入"<<n<<"个元素(用空格隔开):"; for(inti=1;i<=n;i++) cin>>L.r[i].key; L.length=n; returnOK;}voidListTraverse(SqListL){ //cout<<"L=("; for(inti=1;i<=L.length;i++) cout<<L.r[i].key<<''; //if(L.length)cout<<'\b'; //cout<<")"; cout<<endl;}voidHeapSort(SqList&L){intvalue=0;for(inti=0;i<L.length;i++)for(intj=0;j<L.length-i;j++){if(L.r[j].key>L.r[j+1].key){value=L.r[j].key;L.r[j].key=L.r[j+1].key;L.r[j+1].key=value;}}}intmain(){ SqListL; InitList(L); CreateList(L,10); ListTraverse(L);HeapSort(L); ListTraverse(L); return0;}八、归并排序1.定义顺序表的存储结构2.初始化顺序表为空表3.输入10个元素创建含有10个元素的顺序表4.输出顺序表5.对顺序表进行二路归并排序(MergeSort)6.输出排序后的顺序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938程序:#include<iostream>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;StatusInitList(SqList&L){ L.length=0; return0;}StatusCreateList(SqList&L,intn){ if(!L.r||n<1||n>MAXSIZE)returnE

温馨提示

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

评论

0/150

提交评论