




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三: (快速、基数)排序算法的设计一、实验目的和要求(1) 深刻理解排序的定义和各种排序方法的特点,并能灵活运用。(2) 掌握常用的排序方法,并掌握用高级语言实现排序算法的方法。(3) 了解各种方法的排序过程及其依据的原则,并掌握各种排序方法的性能的分析方法。二、实验内容和原理(1)设计直接插入排序、冒泡排序、快速排序算法。(2)设计基数排序算法。三、实验环境1. 硬件:PC机;2. 软件:Windows操作系统、Visual C+ 6.0四、算法描述及实验步骤1、 直接插入排序在要排序的一组数中,假设前面(n-1) n=2 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。2、 冒泡排序 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。3、 快速排序算法 通过一趟扫描后,使得排序序列的长度能大幅度地减少。在冒泡排序中,一次扫描只能确保最大数值的数移到正确位置,而待排序序列的长度可能只减少1。快速排序通过一趟扫描,就能确保某个数(以它为基准点吧)的左边各数都比它小,右边各数都比它大。然后又用同样的方法处理它左右两边的数,直到基准点的左右只有一个元素为止。4、 基数排序算法五、调试过程六、实验结果1、2、3、4、七、总结 通过这次实验,对于多种排序有了一定地了解,在这次实验过程中,虽然遇到挺多的困难,但是我还是认真的对待。同时意识到我对这些方面的知识还是了解的不够深刻。附录:1、#include int a100; void insertsort(int n,int a) int i,j;for(i=2;i=n;i+)if(aiai-1) a0=ai;ai=ai-1; for(j=i-2;a0n;for(i=1;iai;insertsort(n,a);for(i=1;i=n;i+)coutai ;return 0;2、#include#define swap(x,y,t)(t)=(x),(x)=(y),(y)=(t)const int N=5;void sort(int b,int count);int main() int aN; coutendl; cout请输入:; for(int i=0;iai; coutendl; cout输出过程: ; for(i=0;iN;i+) cout ai; coutendl; cout输出结果:; sort(a,N); return 0;void sort(int b,int n) int t,tempt; for(int i=0;in;i+) t=n-i-1; for(int j=0;jbj+1) swap(bj,bj+1,tempt); for(i=0;iN;i+) cout bi;3、#includetemplatevoid quick_sort(T a,int p,int r)if(pr)int q=partition(a,p,r); quick_sort(a,p,q-1); quick_sort(a,q+1,r); templateint partition(T a,int p,int r) int i=p,j=r+1;T x=ap;while(true)while(a+ix&ix);if(i=j)break;swap(ai,aj);swap(aj,ap);return j;templatevoid swap(T& a,T& b)T temp;temp=a;a=b;b=temp;int main() int *a=new int 10; cout请输入10个数:; for(int i=0 ;iai; quick_sort(a,0,9); for(int j=0 ;j10 ;j+) coutaj ; return 0;4、#includevoid jishu(int * a) int *b=new int*10; int i,k; for(i=0;i10;i+) bi=new int10; int j=0; while(j10) i=aj%10; bij=aj; j+; k=0; for(i=0;i10;i+) for(j=0;j=0 & bij=99) ak=bij; bij=-1; k+; j=0; while(j10) i=aj/10; bij=aj; j+; k=0; for(i=0;i10;i+) for(j=0;j=0 & bij=99) ak=bij; k+; for(i=0;i10;i+) deletebi; delete b;int main()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京顺义区北务镇卫生院招聘编外人员3人考前自测高频考点模拟试题及答案详解(各地真题)
- 山西省部分学校2024-2025学年高三上学期期末质量检测地理试题(解析版)
- 2025贵州贵阳市某国有银行花溪支行派遣制员工模拟试卷有答案详解
- 辽宁省点石联考2024-2025学年高二下学期6月份联合考试地理试题(解析版)
- 2025广西农业科学院农业资源与环境研究所土壤生态与高值农业研究室公开招聘1人考前自测高频考点模拟试题及完整答案详解
- 2025江苏南京白下人力资源开发服务有限公司招聘劳务派遣人员1人(二十六)模拟试卷及答案详解(历年真题)
- 医疗器械使用安全保证承诺书8篇范文
- 2025江苏苏州工业园区青剑湖小学后勤辅助人员招聘1人考前自测高频考点模拟试题附答案详解(模拟题)
- 2025年《中国烟草》杂志社有限公司(中国烟草总公司传媒中心)招聘模拟试卷及答案详解(有一套)
- 客户服务电话咨询记录模板化
- 2025年止血技术理论知识考试试题及答案
- 密炼机炼胶作业安全操作指导书
- 胰腺假性囊肿治疗指南
- 2025年(完整版)(高级)政工师理论考试题库与答案
- 江西三校单招试题及答案
- 首钢职务职级管理办法
- 2025国家保安员资格考试题库及答案
- 2025年黑龙江省齐齐哈尔市中考英语试卷
- 医药代表商务礼仪培训课程
- 小班科学《叭叭叭车来了》课件
- 2025至2030招投标行业产业运行态势及投资规划深度研究报告
评论
0/150
提交评论