数据结构实验六 内部排序
实验六
内部排序算法比较
1、实验目的
掌握多种排序方法的基本思想,如直接插入、起泡、简单选择、快速、堆、希尔排序等排序方法,并能够用高级语言实现。
2、问题描述
各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。试通过随机的数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受
3、基本要求
(1) 对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排序、简
单选择排序、快速排序、希尔排序、堆排序。
(2) 待排序的表长不小于100;其中的数据要用伪随机数产生程序产生;至少
要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。
(3) 最后要对结果作出简单分析,包括对各组数据得出结果波动大小的解释。
4、测试数据
由随机数产生器生成。
5、实现提示
主要工作是设法在已知算法中的适当位置插入对关键字的比较次数和移动
次数的计数操作。程序还可以考虑几组数据的典型性,如,正序、逆序和不同程度的乱序。注意采用分块调试的方法。
6、源程序
#include
#define MAXNUM 10000
long cn[MAXNUM],mn[MAXNUM]; typedef struct { int key; }datatype;
void D_InsertSort(datatype R[],long n)//直接排序 { long i ,j; for(i=2;i<=n;i++) { cn[0]++; if(R[i].key R[0]=R[i];mn[0]++; for(j=i-1;R[0].key void Select_Sort(datatype R[],long n)//简单选择排序 { long i,j,k; for(i=1;i void Bubble_Sort(datatype R[],long n)//冒泡排序 { long i,j; for(i=1;i } } } void HeapAdjust(datatype R[], long s, long t)//堆调整 { datatype rc; long i,j; rc=R[s]; i=s; for(j=2*i;j<=t;j=2*j) { cn[3]++; if(j void HeapSort(datatype R[], long n)//推排序 { long i; for(i=n/2;i>0;i--) HeapAdjust(R,i,n); for(i=n;i>1;i--) { R[0]=R[1]; R[1]=R[i]; R[i]=R[0]; mn[3]+=3; HeapAdjust(R,1,i-1); } } void Merge(datatype R[],datatype R1[], long s, long m, long t) { long i ,j ,k; i=s;j=m+1;k=s; while(i<=m&&j<=t) { cn[4]++; if(R[i].key { R1[k++]=R[i++]; mn[4]++; } else { R1[k++]=R[j++]; mn[4]++; } } while(i<=m) { R1[k++]=R[i++]; mn[4]++; } while(j<=t) { R1[k++]=R[j++]; mn[4]++; } } void MSort(datatype R[],datatype R1[], long s,long t) { long m; if(s==t) { R1[s]=R[s]; mn[4]++; } else{ m=(s+t)/2; MSort(R,R1,s,m); MSort(R,R1,m+1,t); Merge(R1,R,s,m,t); } } void MergeSort(datatype R[],datatype R1[],long n)//归并排序 { MSort(R,R1,1,n); } long Partition(datatype R[], long low, long high) { R[0]=R[low]; mn[5]++;
相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




