1、1数据结构排序算法可视化的设计摘 要:可视化已经成为现代信息技术发展过程中不可或缺的技术,而实现数据结构排序的可视化可以更好地为教学服务,成为教学过程中必不可少的教学软件。数据结构排序可视化可以将各种各样的排序用动态的方式展现在教师和学生面前,有助于教师讲解,也有利于学生理解和学习。 关键词:数据结构;排序;可视化 中图分类号:TP311.5 文献标志码:A 文章编号:1673-291X(2013)29-0253-03 引言 在科学高速发展的 21 世纪,计算机得到了广泛的应用。在时代的需求下,人们对知识的需求也越来越高。为了人们便于理解和掌握更多复杂的知识,所以可视化技术成为了人们学习复杂知
2、识的工具。那么,什么是可视化呢?可视化(Visualization)是利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。它涉及到计算机图形学、图像处理、计算机视觉、计算机辅助设计等多个领域,成为研究数据表示、数据处理、决策分析等一系列问题的综合技术。目前正在飞速发展的虚拟现实技术也是以图形图像的可视化技术为依托的。可视化把数据转换成图形,给予人们深刻与意想不到的洞察力,在很多领域使科学家的研究方式发生了根本变2化。可视化技术的应用大至高速飞行模拟,小至分子结构的演示,无处不在。在互联网时代,可视化与网络技术结合使远程可视化服务成为现实,可
3、视区域网络因此应运而生。 数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据结构的实现方式是数据存储结构,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。排序算法是
4、数据结构学科经典的内容,其中内部排序现有的算法有很多种,其中包含冒泡排序,直接插入排序,简单选择排序,希尔排序,快速排序,堆排序等,各有其特点。 一、设计目的 本次我们的创新实践项目就是研究关于数据结构的可视化。简单来说,数据结构可视化就是利用计算机的编程语言将数据结构的内容以动态的方式表现出来。这就为数据结构的学习带来很多的方便,更容易让人们理解。 通过本次实践项目的研究,可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高;可以学习并掌握数据结构与算法计,3使学生能够有独立的分析能力和设计能力,初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能,提高综合运用
5、所学的理论知识和方法独立分析和解决问题的能力。下面我们重点来讲解一下关于本次研究项目的具体构思和实现方式。 二、具体实现 按要求选择不同的操作。选择后根据不同的选择进行不同的操作,最终达到对各种排序的可视化。系统设计如图 1 所示。 (一)分析各种排序算法的特点 1.冒泡排序 这是一种较简单的排序方法,它重复地走访要排序的数列,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 2.插入排序 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第
6、三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。 3.选择排序 它的基本思想是:对待排记录(R1,R2,.,Rn)进行 n 次选择操作。其中第 i 次操作是选择第 i 个小(或大)的记录放在第 i 个(或 n-i+1 个)位置上,从而得到一个新的记录数曾 1 的有序表。 44.快速排序 首先检查数据列表中的数据数,如果小于两个,则直接退出程序。如果有超过两个以上的数据,就选择一个分割点将数据分成两个部分,小于分割点的数据放在一组,其余的放在另一组,然后分别对两组数据排序。 5.希尔排序 先取一个正整数 d1n,把所有
7、序号相隔 d1 的数组元素放一组,组内进行直接插入排序;然后取 d2d1,重复上述分组和排序操作,直至di=1,即所有记录放进一个组中排序为止。 (二)可视化的实现 在界面的排序方法处选择需要的排序方法,然后在数值输入区输入排序的数字,跟据输入数字的大小在界面上会出现用来表示不同数字的不同高度的竖条,点击排序按钮竖条就会根据排序算法来跳动,整个跳动过程会在界面中显示,最后随着排序的完成竖条会停止跳动,最终显示排序结果。例如插入排序(升序)的可视化;在数值输入区里输入以下数值 58、37、79、52、64、26、75、52、60、34,界面上会出现高度不一的竖条,然后点击插入排序按钮,58 为第
8、一关键字,因为前面没有数值,所以不比较;37 为第二关键字与前面的 58 进行比较小于 58,所以 58 的竖条向后移动到红色竖条的位置;第三关键字是 79 与前面的37、58 进行比较,79 大于 58,所以竖条不移动。按照此过程进行逐一比较,排序完成后竖条会按照26、34、37、52、52、58、60、64、75、79,的顺序排列在界面上。如5果想要完成其他的排序方法,点击重置按钮就然后按照上面的过程就可以。如图 25 所示: 三、结论 数据结构排序算法的可视化将书本上的抽象知识转变为更为容易理解的动态形式,不仅可以为学生减少学习的难度,还可以提高学生的学习积极性,更容易让学生掌握各种排序
9、方法。 参考文献: 1 张乃孝.算法与数据结构(C 语言描述-第二版)M.北京:高等教育出版社,2006. 2 达尔文(Darwin,F.I).Java 经典实例M.北京:中国电力出版社,2009. Design of the data structure algorithm visualization YANG Xiao-bo,ZHANG Lin,ZHANG Long-hui,PANG Shuang-shuang (Information Engineering College ,Tibet Nationalities University,Xianyang 712082,China) Ab
10、stract:Visualization has become an indispensable technology in the process of development of modern information technology,and realizes the visualization of data structures sorting can serve teaching better,become indispensable in the process of teaching,teaching software. Sorting data structures visualization can be used to sort the various dynamic way to show in front of teachers and students,help the teachers,but 6also helps students understand and learn. Key words:data structure ;sort;visualization 责任编辑 仲 琪