1 / 40
文档名称:

内部排序算法比较.doc

格式:doc   大小:1,103KB   页数:40页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

内部排序算法比较.doc

上传人:3144187108 2021/12/18 文件大小:1.08 MB

下载得到文件列表

内部排序算法比较.doc

文档介绍

文档介绍:数据结构程序设计
I
内部排序算法比较
目录
摘要 1..
1绪论 1..
2系统分析 1..
1..
22数据需求 1..
2.
3总体设计 2..
2.
2.
4详细设计 3..
3.
4.
5.
6.
7.
8.
9.

11
5调试与测试 12
调试 .12
错误!未定义书签。
6结论 13
结束语 13
参考文献 14
附录1—用户手册 15
附录2—源程序
数据结构课程设计
5
数据结构程序设计
1
摘要
本程序是比较几种排序算法的关键字比较次数和移动次数以取得直观感受。 内部算法有冒泡排序、直接插入排序、快速排序、希尔排序、归并排序等。
每种算法都有自己的比较方法和优缺点, 本程序能更直观的显示出各种排序的比 较次数、移动次数和排序时间,并能用条形图(星号表示)进行表示,以便比较 各种排序的优劣。该程序运用了数据结构中线性表的顺序存储结构和各种排序算 法来共同实现的。
关键词:内部排序、条形图。
1绪论
随着科技的快速发展,越来越多的企业不再浪费人力财力去计算一些统计性 结果,而是应用一些简单的程序或系统来完成这些任务。随着学****数据结构课程 的深入,了解了不同排序算法的不同排序方法, 每种排序对数据的比较次数、移 动次数和排序用时都是不同的,本程序实现了六种内部排序算法的比较, 并用条 形图直观的显示出各种算法的优劣。运用伪随机产生的数据,调用六种排序算法, 记录其比较次数、移动次数和排序时间,再分别用条形图(星号表示)表示出来。
2系统分析

对起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归 并排序算法进行比较。
待排序的元素的关键字为整数,其中数据要用伪随机产生程序产生,并
且至少用5组的输入数据做比较,再使用各种算法对其进行排序,记录其排序时 间,再汇总比较。
演示程序以人机对话的形式进行,每次测试完毕显示各种比较指标值,
比较次数、移动次数和排序时间的列表,并用条形图即星号表示出来,以便比较 各种排序的优劣。
数据结构课程设计
2
数据结构程序设计
1

抽象数据类型:线性表、排序算法
输入数据:需要比较的数据数目
输出数据:不同算法的比较次数、移动次数、排序时间的数据以及对应
的条形图。

在运行本程序时,只要按照正确的操作方法不会出现无法运行的情况, 系统
稳定性好,安全,可靠,响应速度由需比较的数字数目多少来决定。
3总体设计

输入要排序的数据数目
抽象数据类型定义
typedef struct
{
int key;
}ElemType; // 关键字
typedef struct
{
ElemType *elem;
in t le ngth;
}SqList;〃分配顺序存储结构
存储结构:本程序采用了线性表的顺序存储结构。
算法设计:
简单选择排序:运用顺序表。时间复杂度 O(n2),空间复杂度0(1)。
起泡排序:时间复杂度 O(n2),空间复杂度O(1)
直接插入排序:时间复杂度 O(n2),空间复杂度O(1)
数据结构课程设计
3
数据结构程序设计
1
希尔排序:时间复杂度O(),空间复杂度O(1)
快速排序:时间复杂度 O(nlog2n),空间复杂度O(nlog2n)
归并排序:时间复杂度 O(nlog2n),空间复杂度O(n)

根据分析整个程序主要划分为8个功能模块,分别执行要求中的功能。1个 产生伪随机数据模块、6个内部排序算法模块以及1个形成条形图模块。功能模 块图如图1所示
图1功能模块图
伪随机产生数据模块:本程序要求数据是要用伪随机产生程序产生, 再用不同排序算法进行排序。
简单选择排序模块:运用简单选择排序法对伪随机产生的数据进行 排序。
起泡排序模块:运用起泡排序法对伪随机产生的数据进行排序。
直接插入排序模块:运用直接插入排序法对伪随机产生的数据进行 排序。
希尔排序模块:运用希尔排序法对伪随机产生的数据进行排序。
⑹ 快速排序:运用快速排序法对伪随机产生的数据进行排序。
归并排序:运用归并排序法对伪随机产生的数据进行