数据结构(C语言)_各种排序算法性能比较—大学毕业论文毕业设计学位论文范文模板参考资料

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要

排序算法是数据结构这门课程核心内容之一。它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛应用于信息学、系统工程等各种领域。学习排序算法是为了将实际问题中涉及的对象在计算机中进行处理。本毕业论文对直接插入排序、直接选择排序、起泡排序、Shell排序、快速排序以及堆排序算法进行比较。

我们设置待排序表的元素为整数,用不同的测试数据做测试比较,长度取固定的三种,对象由随机数生成,无需人工干预来选择或者输入数据。比较的指标为关键字的比较次数和关键字的移动次数。

经过比较可以看到,当规模不断增加时,各种算法之间的差别是很大的。这六种算法中,快速排序比较和移动的次数是最少的。也是最快的一种排序方法。堆排序和快速排序差不多,属于同一个数量级。直接选择排序虽然交换次数很少,但比较次数较多。

关键字:直接插入排序;直接选择排序;起泡排序;Shell排序;快速排序;堆排序;

引言

人类已进入21世纪,科学技术突飞猛进,经济知识和信息产业初见端倪,特别是信息技术和网络技术的讯速发展和广泛应用,对社会的政治,经济,军事,文化等领域产生越来越深刻的影响,也正在改变人们的工作,生活学习,交流方式。信息的获取,处理,交流和应用能力,已经成为人们最重要的能力之一。

在不久的将来知识经济将占世界经济发展的主导地位,国家综合国力和国际竞争能力越来越取决于教育发展,科学技术和知识创新的水平,教育在经济和社会发展过程中将呈现出越来越突出的重要作用。

1968年美国唐·欧·克努特开创了数据机构的最初体系。现在,数据结构是一们介于数学、计算机硬件和计算机软件三者之间的核心课程。

随着Internet的出现,网络正在改变整个世界,由于Internet具有传播信息容量极大、形态多样、迅速方便、全球覆盖、自由和交互的特点,已经发展成为新的传播媒体,而将教育和网络相结合,将会更好的推动教育的发展。现在不仅很多大学和众多企业部门都已经建立了自己的网站,而且个人网站也如雨后春笋般大量的出现,通过计算机网络实现宣传、交流及资源的整合

学好数据结构的基础,会对编程设计有进一步的提高,使编程能力上一个台阶,从而使自己学习和开发软件的能力进一步提高!。

目录

摘要 .............................................................................................................................................................. I 引言 .............................................................................................................................................................. II 第一章绪论 . (1)

1.1研究的背景及意义 (1)

1.2研究现状 (1)

1.3本文主要内容 (1)

第二章排序基本算法 (3)

2.1直接插入排序 (3)

2.1.1 基本原理 (3)

2.1.2 排序过程 (3)

2.1.3 时间复杂度分析 (3)

2.2直接选择排序 (3)

2.2.1 基本原理 (3)

2.2.2 排序过程 (4)

2.2.3 时间复杂度分析 (4)

2.3冒泡排序 (4)

2.3.1 基本原理 (4)

2.3.2 排序过程 (5)

2.3.3 时间复杂度分析 (6)

2.4S HELL排序 (6)

2.4.1 基本原理 (6)

2.4.2 排序过程 (6)

2.4.3 时间复杂度分. (7)

2.5堆排序 (7)

2.5.1 基本原理 (7)

2.5.2 排序过程 (7)

2.5.3 时间复杂度分析 (11)

2.6快速排序 (11)

2.6.1 基本原理 (11)

2.6.2 排序过程 (12)

2.6.3 时间复杂度分析 (13)

第三章系统设计 (13)

3.1数据定义 (13)

3.2程序流程图 (13)

3.3数据结构设计 (13)

3.4系统的模块划分及模块功能实现 (14)

3.4.1 系统模块划分 (14)

3.4.2 各排序模块功能实现 (14)

第四章运行与测试 (25)

第五章总结 (27)

参考文献 (28)

第一章绪论

1.1 研究的背景及意义

排序是计算机程序设计中的一种重要操作。它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。

排序算法是在整个计算机科学与技术领域上广泛被使用的术语。排序算法是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。本人在研究各种算法的过程中,对其特点、效率、适用性等在不同的数据集上做全面的分析和比较,并以动态演示的方式展示一些经典排序算法运行过程,目的有以下五个方面:做算法的对比研究,培养研究能力;开发一个独立的软件,培养程序设计和软件开发能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;为教学服务,研究结果对抽象的《算法与数据结构》的教学有一定的辅助作用。

排序是计算机科学中最重要的研究问题之一, 它在计算机图形、计算机辅助设计、机器人、模式识别及统计学等领域具有广泛的应用。由于它固有的理论上的重要性,2000年它被列为对科学和工程计算的研究与实践影响最大的10大问题之一。其功能是将一个数据元素的任意序列重新排列成一个按关键字有序的序列。

1.2 研究现状

随着计算机技术的日益发展,其应用早已不局限于简单的数值运算。而涉及到问题的分析、数据结构框架的设计以及插入、删除、排序、查找等复杂的非数值处理和操作。排序算法的学习就是为以后利用计算机资源高效地开发非数值处理的计算机程序打下坚实的理论、方法和技术基础。近来国内外专家学者们对排序算法又有了新的研究和发现。例如:我国山东大学的张峰和张金屯两位教授共同研究了《我国植被数量分类和排序研究进展》这课题。很值得有关部门去学习和研究。

1.3 本文主要内容

排序的方法很多,但是就其全面性能而言,很难提出一种被认为是最好的方法,每一种方法都有各自的优缺点,适合在不同的环境下使用。如果排序中依据的不同原则对内部排序方法进行分类,则大致可分为直接插入排序、直接选择排序、起泡排序、Shell排序、快速排序、堆排序六类。

相关文档
最新文档