基于VB6.0的排序算法动态演示软件的设计与实现

来源 :中国信息技术教育 | 被引量 : 0次 | 上传用户:rwteng
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:作者针对数据结构与算法课程理论复杂和概念抽象的特点,以Visual Basic 6.0为开发环境,设计实现了常用经典排序算法的二维动态可视化演示软件。教学实践证明,直观生动的动态排序过程演示,有利于学生更好地理解和掌握各排序算法的基本思想,锻炼学生算法的理解、设计和实现的能力,从而有效地提高教与学效率。
  关键词:数据结构;排序算法;动态演示;算法可视化
  中图分类号:G434  文献标识码:A  论文编号:1674-2117(2021)22-0072-04
  排序算法是数据结构与算法中最基本的算法之一,是信息检索和数据处理的基础。排序算法分类繁多,过程抽象,学生理解起来较为困难。算法可视化通过对具体算法流程进行高度抽象,将计算过程用动画的形式展现出来,使算法执行过程形象可见,从而降低算法的理解难度,对学生来说具有重要的意义。它以算法思想、流程为主要内容,通过让学生自由控制算法动画的播放速度、流程,以及所演示算法的数据,使学生更容易掌握算法的基本思想,熟悉算法流程。[1-2]
  本文借助Visual Basic 6.0开发环境设计并实现了算法演示的可视化动态演示软件,师生可自行设置数据规模及大小范围,适时调整控制排序速度,直观形象地感知各排序算法的具体执行过程,更好地理解和掌握算法的精髓,从而达到辅助教学,提高教学效率的目的。
  ● 排序算法
  排序,就是为了使一组数或一串记录,通过编辑与操作,使它从无序到有序。一个经过优化的简捷的算法可以节省大量的时间和空间资源,即不同的算法有不同的时间复杂度和空间复杂度。排序算法主要分为内部排序和外部排序,通常所说的排序算法指的是内部排序算法,即数据记录在内存中进行排序。内部排序算法大体可分为两种:一种是比较排序,时间复杂度为O(nlogn)~O(n2),如冒泡排序、选择排序、插入排序、归并排序、堆排序、快速排序等;另一種是非比较排序,时间复杂度可以达到O(n),如计数排序、基数排序、桶排序等。
  本软件主要设计并实现了比较排序中的三种经典排序算法(选择排序、插入排序、冒泡排序)的动态排序演示过程。这三种排序算法也是初学者需要掌握的最基本的算法,它们之间既有区别也有联系:三者都是将序列分成两部分——已排序序列和乱序序列;在选择排序和插入排序中,已排序序列在前面,乱序序列在后面;在冒泡排序中,已排序序列在后面,乱序序列在前面;每次均从乱序序列中选择一个合适的数,放到已排序序列合适的位置,直到乱序序列中没有数据,完成整个排序过程。
  该软件旨在让学生形象直观地感知各排序算法的执行过程,掌握各算法的基本思想及其区别与联系,了解比较次数与算法时间复杂度之间的关系以及算法稳定性方面的知识,为学生后续学习其他排序算法、设计并编写程序代码打下坚实的基础。
  ● 动态演示软件的界面与功能设计
  本软件用户界面设计简单友好,操作清晰明了,主要实现了排序算法动态演示处理,如上页图1所示。其功能结构主要分为用户参数设置模块、随机数据生成模块、排序算法演示模块和数据输出模块。用户参数设置模块可以让用户设置初始数据序列的数据个数以及数据的大小范围,选择排序算法的类型,还可以设定排序速度。随机数据生成模块可以根据用户参数设置生成初始随机数列,并且自适应生成一系列与各数据大小相对应高度的条形图,将数据大小与随机状态可视化地显示出来。排序算法演示模块能够根据用户选择的排序算法对数据进行排序,动态显示整个排序过程。数据输出模块主要记录两个方面的内容:其一,记录排序趟数以及数据比较的次数,为算法时间复杂度的学习提供准确的数据支持;其二,排序过程中对相同大小的数据元素标记初始位置序号,为了解算法稳定性提供直观的数据支持。
  ● 动态演示软件的设计与实现
  1.数据大小的可视化显示
  用系列条形图直观表示数据序列,用高度表示其数据大小。特别地,条形图的显示具有自适应性,即能够根据用户设置的数据范围自适应调整高度,能够根据用户设置的数据个数自适应调整条形图的宽度,如图2所示。
  2.数据状态的可视化显示
  用条形图的颜色表示该数据的状态:淡蓝色表示待排的无序数据;绿色表示当前正在进行比较的数据;红色表示当前查找到的一些特征数据(选择排序和插入排序);橙黄色表示已排的有序数据,如下页图3所示。
  3.排序算法的动态演示实现
  借助VB6.0的timer时间控件来实现排序过程的动态演示。通过触发Timer控件的Timer事件,可以有规律地间隔一定时间执行一次代码;Interval属性可用来设置触发的时间间隔,以此来设置排序速度;Enabled属性决定该控件是否对时间的推移做响应,以此来控制排序过程的开始与停止。因此,各排序算法动态演示过程的不同关键在于timer事件的代码编写,以下为冒泡排序timer事件伪代码(如图4)。
  ● 排序算法动态演示过程及其对算法学习的帮助
  1.透过动态过程演示动画便于理解算法的基本思想
  通过动态演示过程,可以直观获取各个算法具体而完整的执行过程,理解算法的基本思想,掌握各算法的区别与联系,为后期算法的设计以及代码实现提供有力的知识基础。
  2.便于探究算法的时间复杂度
  当数据规模为n时,通过多组数据输出模块记录的比较次数并结合执行过程,可以很容易得出冒泡排序和选择排序的比较次数均为n(n-1)/2,时间复杂度为O(n^2);插入排序在最好的情况下(初始数据已有序)比较次数为n-1,在最差的情况下(初始数据完全逆序)比较次数为n(n-1)/2,因此平均比较次数约为n^2/4,故时间复杂度也为O(n^2)。
  3.便于探究算法的稳定性
  排序算法往往还需要考察其算法稳定性。排序算法稳定性可简单定义为:如果Ai=Aj,排序前Ai在Aj之前,排序后Ai还在Aj之前,则称这种排序算法是稳定的。通俗地讲,就是保证排序前后两个相等的数的相对顺序不变。
  本软件对于相同的数据,在条形图上方标记该数据在相同数据序列中的原始排位,通过多组实验数据验证了冒泡排序和插入排序是稳定的排序算法,而选择排序是不稳定的排序算法,如下页图5所示。本软件对算法稳定性的探究为学生提供了直观清晰的数据分析。
  ● 结束语
  本软件实现了对冒泡排序、选择排序和插入排序三种基本排序算法的动态排序演示,用户界面简单友好、清楚明了。对于抽象难懂的排序算法,此系统生动形象的动态演示使算法的执行过程一目了然,可以帮助学生更好地掌握排序算法的基本思想,更为直观地了解算法时间复杂度以及算法稳定性方面的知识。当然,排序算法很多,学生可以在此基础上优化改进、分析设计出更加高效的排序算法。同时,此系统可以起到抛砖引玉的作用,鼓励学生为此系统添加新的排序算法演示功能,活学活用,深入理解并实践排序算法,进一步锻炼算法设计与实现能力。
  参考文献:
  [1]刘斌,徐秀娟,王胜法,等.计算机图形学可视化教学综合实验平台开发[J].实验室科学,2018,21(04):53-56.
  [2]李晓鸿,刘丛,骆嘉伟.基于学习者视角的算法可视化系统研究综述[J].计算机科学,2015,42(11):431-437.
  [3]郭伊.《数据结构》课程教学动态演示系统的设计与实现[D].咸阳:西北农林科技大学,2015:1-56.
  郭良敏,孙圳昊,罗永龙,等.“算法设计与分析”中经典算法动态演示软件的设计与实现[J].电脑知识与技术,2016,12(20):224-225.
  作者简介:高向敏(1987—),女,江苏镇江人,南京师范大学硕士研究生,研究方向为计算机图形学。
其他文献
李维明,教育部普通高中信息技术课标修订组核心成员,正高级教师(教授)主持人语:自2019年9月采用新课标新教材开展教学以来,北京、天津、山东、海南、辽宁等5个省(市)大多完成了必修模块的教学,部分省(市)还进行了学业水平合格考试,取得了良好的成效。2020年,教育部又组织专家对课标进行了修订,颁布了最新版的《普通高中信息技术课程标准(2017年版2020修订)》,更加明晰了学科核心素养的内涵和内容
期刊
自主、合作、探究是新课程改革倡导的学习方法。如何在信息化学习环境中注重学生个性差异,真正面向全体学生,为有效指导学生自主学习、合作学习、探究学习提供决策依据和技术支撑?本期专栏两个课例应用FEG未来课堂对学生自主学习、探究学习的指导做了一定的探索,但是实践效果的提升需要持续的数据积累和方法迭代。  周小云老师将生活体验与数学活动紧密联系在一起。通过大象快餐店价格变化这一主线创设合作交流、自主探究等
期刊
《义务教育语文新课程标准》明确指出:学生是学习的主体,语文课程必须根据学生身心发展和语文学习的特点,爱护学生的好奇心、求知欲,鼓励自主阅读、自由表达,并积极倡导自主、合作、探究的学习方式。那么,如何采用灵活的教学方式、方法?如何加强师生合作教学,使课堂教学变得开放、双向、多渠道、立体?下面,笔者以小学语文三年级《肥皂泡》一课为例,谈谈如何应用FEG未来课堂进行小学语文教学。  课 例 呈 现  ●
期刊
摘要:本文以《绿化率统计》一课为例,从激发学生学习兴趣、剖析识别原理、体验AI轻应用、培养计算思维、解决实际问题等维度对“轻人工智能教学”展开论述,希望可以教给学生能够理解与应用的技术,使其学会从人工智能技术的角度去看待问题、思考问题、解决问题,同时,鼓励学生在玩中学,把爱好变为特长,把特长变为专业,为学生打下良好的信息技术基础。  关键词:轻人工智能;人工智能教育;学科融合  中图分类号:G43
2018年4月,教育部发布《教育信息化2.0行动计划》,文中明确指出要“利用大数据技术采集、汇聚互联网上丰富的教学、科研、文化资源,为各级各类学校和全体学生提供海量、适切的学习资源服务”,教育信息化2.0环境下的数字资源不仅是教育教学内容的载体,还是新型教育生态的数据资产之一,更是教育信息化推进的重要支撑之一。据此,笔者基于长期一线教学经验,对数字资源支撑下创新应用课堂教学实践活动的开展做以下三点
期刊
摘要:本文从校本练习的开发建设、应用实践、教学反思等方面,探索了基于教学云平台的校本练习并将其应用于个性化学习的实现路径,以期能够吸引更多的教学同行关注基于教学云平台的校本练习开发与应用,探索更多关于校本练习应用于精准化教学及个性化学习的方法、途径,推进信息技术与课程的深度融合。  关键词:教学云平台;校本练习;个性化学习  中图分类号:G434 文献标识码:A 论文编号:1674-2117(20
高中通用技术课程的核心素养是技术意识、工程思维、创新设计、图样表达和物化能力。如何在通用技术课堂教学中渗透核心素养的教学过程落实立德树人根本任务,值得一线教师深入思考和探索。在贯彻立德树人教育的根本任务方面,笔者所在学校结合时代要求,认真研究加强思政课建设水平的校本实施途径,逐渐形成以思政课程为圆心、以课程思政为半径、以爱国主义为底色的育人同心圆。笔者藉此接触了政治课程中议题式教学的理念,并将议题
期刊
参观博物馆可以完善自己的世界观,丰富个人的创造力。截至2020年底,中国备案博物馆有5788家,基本形成了类型丰富、主体多元的现代博物馆体系。这么多的博物馆,我们不可能都能实地参观,但可以利用网络,“走入”一座座博物馆,欣赏里面珍藏的瑰宝。下面就介绍一款这样的工具——观妙中国。  ● 观妙中国的功能和特点  观妙中国是谷歌艺术与文化团队开发的一款线上的艺术品与历史文物展示应用。首先下载并安装好软件
随着基础教育课程改革的不断深入,各学科都在寻求信息技术与学科教学的深度融合。小学音乐教学也需要更广泛地运用信息技术,变革传统的小学音乐教学,进而突破单纯使用多媒体课件的局限。因此,笔者对在小学音乐教学中运用计算机音频处理等软件进行了积极探索,让学生可以使用软件对音乐进行各种艺术化加工和剪辑。下面笔者以人教版小学五年级下册《美丽的家乡》一课为例,谈一谈自己的教学实践和思考。  ● 课前准备:搭建数字
期刊
摘要:本文探索AR技术与混合式教学融合的思路,构建基于AR应用的初中地理混合式教学模式。该模式分为准备、实施、评价三个阶段,贯穿地理教学的课前、课中、课后三个环节。作者以《地球的运动》为例,进行具体案例分析,并就探索实践的经验进行总结,力求为初中地理教学提供参考。  关键词:AR;增强现实;混合式教学模式;教学设计;初中地理  中图分类号:G434 文献标识码:A 论文编号:1674-2117(2