[发明专利]一种面向方面的算法可视化方法及系统有效
申请号: | 202110242023.3 | 申请日: | 2021-03-04 |
公开(公告)号: | CN112883035B | 公开(公告)日: | 2023-05-19 |
发明(设计)人: | 周晓聪;秦建华 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/28 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 刘俊 |
地址: | 510275 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 方面 算法 可视化 方法 系统 | ||
本发明公开了一种面向方面的算法可视化方法及系统,涉及算法可视化领域,所述方法包括以下步骤:在算法层选择待演示的算法;对算法进行数据初始化;执行算法,将生成的上下文信息及其位置索引保存至上下文层;在演示层中划分不同算法的显示区域,将每个显示区域的当前视图索引与上下文层中保存的位置索引进行匹配,获取对应的上下文信息,根据预设的视图生成方法,在演示层中生成视图;判断算法是否执行完毕,若否,则将新生成的上下文信息继续保存至上下文层,进行上下文信息的更新,同时更新演示层中生成的视图,若是,则算法层输出算法最终的运行结果。本发明通过算法层、上下文层、演示层的配合,实现不同算法的同步对比。
技术领域
本发明涉及算法可视化领域,更具体地,涉及一种面向方面的算法可视化方法及系统。
背景技术
算法可视化是软件可视化领域的一个分支,利用动画的方式演示算法的运行。目前的算法可视化实现方法分为两大类,一是基于事件驱动,即在一个具体的算法代码中加入可视化语句,目前应用最多,但容易导致代码混乱、可重用性低;二是面向方面编程,可在一定程度上解决代码混乱和可重用性的问题,但是并未能同步显示伪代码,且不具有交互性,而且由于上下文层的设计局限,不能同步显示两种不同算法。
另外,目前的研究主要服务于市场,面向教学领域的研究甚少。Ladislav等人发表的文章《Algorithm Animations for Teaching and Learning the Main Ideas of BasicSortings》中,使用纸牌的方式演示动画,使学习者可手动移动两张纸牌,增加了交互性,但存在数据少、演示方式单一、未能同步显示同一算法、无法随时修改数据等问题;并且,目前的研究都主要集中在排序算法,很少涉及到其他算法。
发明内容
本发明为解决现有技术中面向方面编程无法对不同算法进行同步对比等问题,提供一种面向方面的算法可视化方法及系统。
本发明的首要目的是为解决上述技术问题,本发明的技术方案如下:
一种面向方面的算法可视化方法,包括以下步骤:
S1、在算法层选择待演示的算法;
S2、对算法进行数据初始化;
S3、执行算法,将生成的上下文信息及其位置索引保存至上下文层;
S4、在演示层中划分不同算法的显示区域,将每个显示区域的当前视图索引与上下文层中保存的位置索引进行匹配,获取对应的上下文信息,根据预设的视图生成方法,在演示层中生成视图;
S5、判断算法是否执行完毕,若否,则将新生成的上下文信息继续保存至上下文层,进行上下文信息的更新,同时更新演示层中生成的视图,若是,则算法层输出算法最终的运行结果。
作为本发明的改进,在所述步骤S1中,选择一种或两种待演示的算法;当选择两种待演示的算法时,所述待演示的算法为同一类型的算法。
作为本发明的改进,在所述步骤S3中,当待演示的算法为一种时,在演示层中同步显示该算法正在执行的伪代码。
作为本发明的改进,通过加粗和变色的方式对正在执行的伪代码进行突出显示。
作为本发明的改进,在所述步骤S2中,算法的初始数据由手动输入或根据算法本身随机生成。
作为本发明的改进,在所述步骤S3中,生成的上下文信息采用二维数组的形式保存至上下文层。
作为本发明的改进,在所述步骤S4中,对预设的视图生成方法进行扩充,具体为:加入数据结构、离散数学和图论中所有基础算法的视图生成方式。
作为本发明的改进,在所述步骤S5中,更新演示层中生成的视图,具体为:
S5.1、预设视图刷新的时间间隔;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110242023.3/2.html,转载请声明来源钻瓜专利网。