堆排序、直接插入排序算法比较代码.doc
附件2:
课程设计任务书
学生姓名: 专业班级: 090 班
指导教师: 工作单位: 计算机科学系
题 目: 堆排序、直接插入排序算法比较
初始条件:
试通过随机数据比较堆排序、直接插入排序算法的关键字比较次数和关键字移动次数。
(1)待排序表的表长不小于100;其中的数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。
(2)最后要对结果作出简单分析,包括对各组数据得出结果波动大小的解释。
(3)以线性表的形式给出构造出来的初始堆。
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
课程设计报告按学校规定
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
用A4纸打印(书写),并应包含如下内容:
1、 问题描述
简述题目要解决的问题是什么。
2、 设计
存储结构设计、主要算法设计(用类C语言或用框图描述)、测试用例设计;
3、 调试报告
调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。
4、 经验和体会(包括对算法改进的设想)
5、 附源程序清单和运行结果。源程序要加注释。如果题目规定了测试数据,则运行结果要包含这些测试数据和运行输出,
6、 设计报告、程序不得相互抄袭和拷贝;若有雷同,则所有雷同者成绩均为0分。
时间安排:
1、第19周完成。
2、7月1 日14:00到计算中心检查程序、交课程设计报告、源程序(CD盘)。
指导教师签名: 年 月 日
系主任(或责任教师)签名: 年 月 日
源程序代码如下:
#include
#include
#include
using namespace std;
#define MAXSIZE 1000 //可排序的表的最大长度 void HeapSort(long&c,long&s); void InsertSort(long&c,long&s); void BeforeSort();
void Shift(int i,int j); void Swap(int i,int j); void InitList(int n); typedef int DataType[MAXSIZE+2];//Data[-1]和Data[MAXSIZE+1]为辅助单元
DataType data; //可排序表的顺序存储空间 DataType data2; //辅助空间,保留最新打乱的数据 int size; // 表的当前长度 long compCount; //关键字的比较次数 long shiftCount; //关键字的移动次数 void BeforeSort(){//格式化
compCount=shiftCount=0; }
bool Less(int i,int j){
//若表中第i个元素小于第j个元素,则返回ture,否则返回false
compCount++;//关键字比较次数加1
return data[i]=1;left--)Sift(left,size);
for(right=size;right>=2;right--)
{Swap(1,right);Sift(1,right-1);}
c=compCount;s=shiftCount; }
void main(){
int i,j;
for(i=1;i<=5;i++){
long c,s;
int n;
cout<<"请输入待排序表的表长(不小于100,不大于1000)"<>n;
if(n<100||n>1000)cout<<"您的输入不符合要求"<
本文档为【堆排序、直接插入排序算法比较代码.doc】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。