数据结构。
课程设计报告。
班级: 1020552
姓名: 赫前进
学号: 11
指导老师: 刘宇君
完成日期: 2012/6/15
1. 题目。
排序。2. 需求分析。
2.1、选题要求。
1)设计一个菜单,格式如下:
1.直接插入排序。
2.希尔排序。
3.冒泡排序。
4快速排序。
5选择排序。
6.堆排序。
7.退出程序。
2)选择不同的菜单进行相应的排序,并给出排序的关键字序列。
2.2、选题的意义及背景。
排序是计算机程序设计中的一种重要操作。它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。
排序的方法很多,但是就其全面性能而言,很难提出一种被认为是最好的方法,每一种方法都有各自的优缺点,适合在不同的环境下使用。如果按排序过程中依据的不同原则对内部排序方法进行分类,则大致可分为插入排序,交换排序,选择排序,归并排序和记数排序等五类。
此实验通过对直插排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序这几种内部排序算法进行比较,能使我们更好的掌握这些排序的基本思想及排序算法。通过该题目的设计过程,可以加深理解各种数据结构的逻辑结构、存储结构及相应上运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养我们的动手能力。
2.3、课程设计目标。
本课程设计对以下内部排序算法进行比较:直插排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序。
待排序表的元素关键字为整数,用随机不同的测试数据做测试比较。比较的指标为关键字的比较次数、关键字的移动次数和所用时间。最后对这些内部排序算法进行性能分析。
3. 概要设计。
3.1、原始数据。
用户输入记录的个数,数据由随机数产生器生成。
3.2、输出数据。
产生的随机数分别用直插排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序。这些排序方法进行排序,输出关键字的比较次数、移动次数和所用时间。
3.3、数据处理。
3.3、存储结构。
typedef struct
cout<}
4.2.2六种排序算法**。
/插入排序。
void linklist::insert(int dk)
memcpy(&r[j + dk], temp, sizeof(redtype));
/希尔排序。
void linklist::shellsort()
int t=length+1;
dowhile(t>1);
/快速排序。
int linklist::partition(int low, int high)
(chgnum)++
memcpy(&r[low], r[high], sizeof(redtype));
while (low < high &&r[low].key <=pivotkey)
(chgnum)++
memcpy(&r[high], r[low], sizeof(redtype));
memcpy(&r[low], temp, sizeof(redtype));
return low;
void linklist::qsort( int low, int high)
void linklist::quicksort(){
qsort(0, length - 1);
数据结构课程设计报告
东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...
数据结构课程设计报告
设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...
数据结构课程设计报告
河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...