25
1 引言
1。1 研究背景及意义
排序属于计算机科学中一种基本的操作,其功能是将一个由若干数据元素组成的任意序列重新排列成一个有序的序列。排序在计算机科学中是一项复杂而重要的技术,其使用频率无论在系统软件还是在应用软件中都很高[1]。算法是指解题方案的准确而完整的描述,算法一般具有以下几个基本特征:(1)能行性,算法中的每一步都必须能被实现且其执行结果要能达到所预期的目的;(2)确定性,算法中的每一步必须有明确的定义;(3)有穷性,算法必须要在有限时间内执行结束;(4)拥有足够的情报[2]。而排序算法则是指利用计算机程序来实现排序操作的算法,也就是说排序算法是利用某一特定思想对一个由若干数据元素组成的无序序列进行排序,使其变成一个有序序列的算法,根据所利用的思想不同,便诞生了不同的排序算法。常见的有冒泡排序算法、快速排序算法、插入排序算法、希尔排序算法、选择排序算法和堆排序算法等。不同的排序算法各有优劣,应用时根据待排序序列的规模大小以及人们对于数据处理的具体要求,可以选择不同的排序算法。
排序算法在实际生活中的应用极为广泛,也给日常生活带来了许多便利。比如图书馆的藏书按照索书号在书架上排序,方便读者的检索;学生按照学号顺序交作业,便于任课老师统计;计算机的资源管理器可以由用户自行选择按照名称、日期、类型和大小等方式进行排列。可以说排序算法已经被广泛应用于几乎所有领域之中。论文网
计算机辅助教学(CAI,全称Computer Assited Instruction),其定义为:利用计算机辅助或是代替任课教师执行部分教学任务,教授学生知识与技能。在传统教学模式中,教师传授学生知识所利用的表达方式一般为文字、语言和动作,有时候为了更直观,教师也会采用模型、仪器及图画等辅助工具。这些教学工具在教学过程中必不可少,但也有其局限性。而CAI综合应用超文本、多媒体、人工智能与网络通信等计算机技术,利用其交互式功能,图文声并茂,能把传统教学模式中难以表达的内容生动形象地展现在学生眼前,能有效地缩短学生的学习时间、大大提高教学质量和效率,从而实现最优化教学目标。
1。2 现状分析
软件技术基础是电类专业的一门专业基础课,而这门课的教材和内容都主要集中在“常用排序算法的原理阐述和分析、常用排序算法的应用、排序算法的优劣性对比及各自的适用场合”这三个方面。前两种内容无疑离不开大量的实践操作,因此在学习过程中需要课程实验作为对课堂教学的辅助。
而计算机辅助教学在软件技术基础这门课上的应用较少,目前教学的主体仍然是长篇的代码,枯燥的文字,辅以极少数的图片示例。如今大多数教师所使用的教学课件中都包含有当前所讲算法的简单演示,但这些演示几乎全都是提前给好待排序的数据,按部就班地一张张幻灯片显示每一步的移动,缺少与学生之间的互动,交互性很差。如果学生想更换原序列中的某些数据元素,教师并不能在课件中实现,到头来还是只能在黑板上自行书写,这样就失去了一开始使用计算机辅助教学的意义。因此,很有必要设计出一个可以自行更改待排序序列并自动显示排序过程的软件,如此一来可以让学生自主学习,深入了解排序算法。
1。3 论文的主要工作
本课题设计开发了一个能演示几种排序算法排序过程的软件,具体实现的是以下这几种排序算法:冒泡排序算法、快速排序算法、希尔排序算法以及堆排序算法。利用在软件技术基础课上学习到的这几种排序算法各自的原理,编写计算机代码实现了这些排序算法,并在此基础之上,运用Visual Studio2010的VC++开发工具,在MFC程序开发框架下编写了一个软件以演示这些排序算法的具体排序过程。排序算法演示软件可以由使用者自行选择想要实现的排序算法,并可以通过手动输入或从计算机本地读取两种方式获取待排序数据,最终在显示栏中显示出排序的过程。该软件操作简单、形象生动,能很好地帮助使用者理解这几种排序算法,大大提高学习质量和效率。文献综述 vc++几种排序算法演示软件实现(2):http://www.youerw.com/jisuanji/lunwen_137858.html