- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计报告-资料
《数据结构课程设计》
报告书
2012/2013 第1学期
专业班级:_________
学 号:_________
学生姓名:_________
计算机信息工程学院
一.课程认识
数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。通过此次课程设计主要达到以下目的:
了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
训练用系统的观点和软件开发一般规范进行软件开发,培养软件工者所应具备的科学的工作方法和作风。
二.课题选择
1、内部排序演示
(一)问题描述及分析:
设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。(1) 对起泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较;(2)gettickcount())(二)数据结构描述:
本程序采用顺序表结构,具体结构定义如下:
typedef struct
{
ElemType *elem;
int length;
}SqList;
(三)主要算法流程描述:
1.主要函数流程
1.void addlist(SqList L)//初始化顺序表
2.void random(SqList L)//随机数产生程序
3. void memory(SqList M,SqList L)//记录L,使每个排序算法都用一组相同的随机数
4. void BubbleSort(SqList L)//冒泡排序
5. void InsertSort(SqList L)//直接插入排序
6. void SelectSort(SqList L)//选择排序
7. int Partition(SqList L,int low,int high)//快速排序
8. void QSort(SqList L,int low,int high)//对顺序表的子序列作快速排序
9. void ShellSort(SqList L)//希尔排序
10. void HeapAdjust(SqList L,int s,int m )//调整L.elem[s]的关键字,使L.elem[s…..m]成为一个大根堆
11. void HeapSort(SqList L)//对顺序表L进行堆排序
12. void main()主函数
2. 主要代码及程序说明
#includeiostream
#includestdio.h
#includestdlib.h
#includestring.h
#includetime.h
using namespace std;
#define LIST_INIT_SIZE 50000
int bj1=0,yd1=0,bj2=0,yd2=0,bj3=0,yd3=0,bj4=0,yd4=0,bj5=0,yd5=0,bj6=0,yd6=0,n;//yd,bj为记录关键字比较和移动的次数
typedef struct
{
int key;
}ElemType;
typedef struct
{
ElemType *elem;
int length;
}SqList;
void addlist(SqList L)//初始化顺序表
{
a: printf(请输入你要输入的个数:);
scanf(%d,n);
if(n50000)
{
printf(超出范围重新输入!!!\n);
goto a;
}
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem)exit(0);
}
void random(SqList L)//随机数产生程序
{
L.length=0;
static bool first=true;
if(first)
{
srand(time(0));
first=false;
}//使输入相同个数时每次产生的随机数不同
for(int i=1;in+1;i++)
a: {
L.elem[i].key=rand(
您可能关注的文档
- 年产150000辆电动车生产线扩建项目可行性研究报告-资料.doc
- 年产1500吨汽车铸件项目可行性研究报告-资料.doc
- 年产230万个包装箱项目可行性研究报告-资料.doc
- 年产16000万块页岩烧结砖生产线建设项目可行性研究报告-资料.doc
- 年产12000万块煤矸石 粉煤灰烧结砖生产线建设项目可行性研究报告-资料.doc
- 年产36万套10kV冷缩电缆终端项目可行性报告-资料.doc
- 年产40万立方米加气混凝土砌块生产线建设项目可行性研究报告-资料.doc
- 年产690万平方米镁质防火装饰系列板材生产线可行性研究报告-资料.doc
- 年产1000套高速铁路轨道板振源设备产业化项目可行性研究报告-资料.doc
- 年加工5000吨脱水蔬菜和速冻食品项目可行性研究报告-资料.doc
文档评论(0)