【VB开源代码栏目提醒】:网学会员为需要VB开源代码的朋友们搜集整理了基于自适应的排序过程动画演示算法及实现 - 期刊论文相关资料,希望对各位网友有所帮助!
26 卷 6 期 第 微电 子 学 与 计 算 机 Vol. 26 6 No. 2009 年 6 月 M ICRO EL ECTRON ICS amp COM PU TER J une 2009 基于自适应的排序过程动画演示算法及实现 林 祥 姜 李 熊国铨 东华理工大学 软件学院 江西 南昌 330013 要 摘 : 动画演示算法可为人们认知事物提供直接的感性认识 . 文中通过采用颜色变换 坐标变换 擦除法动画设 计技术 提出了一种新的基于自适应的排序过程演示算法 并给出了操作步骤及实现结果 . 该算法易理解 易操作 具有一定的通用性 对动态演示动画设计具有极高的借鉴意义 . 关键词 : 自适应 排序过程 动画演示算法 中图分类号 : TP311. 1 文献标识码 : A 文章编号 : 1000 - 7180 2009 06 - 0159 - 03 Adaptive2Based Animations Demo Algorithm and Implementation of Sorting Process J IAN G Lin L I Xiang XION G Guo2quan Software College East China Institute of Technology Nanchang 330013 China Abstract : We present a algorit hm t hat are adaptive2based animation demo of sorting process. In t his paper we utilized color2transforms coordinate2transforms and erasure animations design technology. The algorit hm is understand easily operate conveniently. As it general t here would help design dynamic demo animations. Key words : adaptive sorting process animations demo algorit hm1 引言 2 算法描述 算法演示动画通过图形的方式直观形象地展示 排序元素的个数及大小均具有不确定性 且为算法的执行过程 . 目前为止 国内已经有许多各种平 了达到逼真的效果必须使图形的颜色具有可变性 台上开发的算法演示软件应用在教学方面 且取得 因此演示动画必须让排序过程的元素及颜色具有自了显著效果 . 但该类软件在学生个性化需求 主动性 适应特点 6 .发挥及算法本身的自适应上却有待改进 1 . 在本算法中 元素的个数及大小完全依赖用户 排序算法 2 是算法设计中的重要内容之一 其 的输入确定 其颜色采用给定的不同颜色值进行配排序过程则是掌握排序算法的核心所在 . 如何掌握 色 从而很好地达到了自适应的特点 . 在演示动画各种排序算法的排序过程则往往使学习者陷入茫 中 采用矩形图形表示每个元素值 并给每个矩形图然 . 排序过程的的演示动画主要体现在动态及自适 形设置不同颜色 所有矩形图形排序在同一水平线应 3 效果上 . 上 不同图形之间有一定的间隔大小 . 对排序过程的 文中在研究大量动画设计算法 4 的基础上 采 演示动画比较简单 主要是根据各排序算法的执行 5 用自适应技术 坐标变换技术 擦除法动画技术 过程进行动态演示 因此其算法步骤实际上就是排提出了一种新的基于排序过程的自适应动画演示算 序的执行步骤 . 在排序算法过程演示动画中 主要有法. 三个步骤需要处理 即数据生成 比较操作和交换操收稿日期 : 2008 - 08 - 11基金项目 : 江西省教育厅科技项目 赣教技学 2007 233 号 160 微电子学与计算机 2009 年作 . 这三个步骤是动画演示的核心算法 本算法采用 2 . 2 比较操作了动态生成颜色值 坐标变换 擦除法动画技术 . 为 比较操作采用闪烁动画技术实现 利用视觉暂更好地描述算法 给出如下定义 留特性达到闪烁效果 . 操作步骤如下 : 定义 1 集合 A 为待排序元素的集合 记作 A 1 选中两个待比较的元素 a1 a2 … a n 用 a i 表示第 i 个元素 . 2 在该两个元素对应的矩形图形上设置同样 定义 2 函数 c i 表示第 i 个元素的颜色值 的颜色值 如红色 将两个矩形图形以同样的颜色其中 1 ≤ i ≤ n n 为排序元素的个数 . c i 的值限 值在原坐标位置进行重画 定在 1 C 区间内 . 常数 C 表示程序语言中的颜色 3 延时 采用 delay t 延时函数 值上限 . 4 将两个矩形图形用原来的颜色值在原坐标 定义 3 函数 b i x 表示第 i 个元素的坐标 位置进行重画 .位置 其中 1 ≤ i ≤ n x 取值为 x 1 y 1 x 2 y 2 x 1 2 . 3 交换操作y 1 和 x 2 y 2 为矩形右对角线两端坐标点 . 交换操作采用擦除法动画技术实现 利用背景 定义 4 常数 D 作为矩形图形的间隔大小 . 色对矩形图形重画 达到擦除图形的目的 . 其中需要 定义 5 函数 Delay t 表示延时操作 其中 t 交换两个矩形图形的颜色值及 y 轴上的坐标 其交表示时间间隔 单位为秒 . 换公式为2 . 1 数据生成 c i Ζ c j 3 数据的生成采用边输入边生成矩形图形的方 b i y2 Ζ b j y2法 . 这里需要进行颜色的设置和矩形图形坐标的变 操作步骤如下 :换 当确定了颜色值和坐标后就可以画出各输入数 1 选中两个待交换元素 据的矩形图形了 . 2 以背景色在两个矩形图形位置绘制 达到 颜色值 c i 由输入数据 a i 对颜色值上限 C 取 擦除目的 模运算来确定 3 延时 采用 delay t 延时函数 c i a i mod C 1 1 4 交换两个矩形的颜色值及 y 轴坐标值 见 矩形图形的右对角线两端坐标点 x 1 y 1 和 式 3 x 2 y 2 由函数 b i x 计算得到 b i x 在计算 5 以新的颜色值及 y 轴坐标值进行绘制 .时利用上一图形的坐标变换得到 . 其坐标及图形见 3 算法实现图 1 所示 变换公式由式 2 确定 . b i x 1 x i - 1 1 M ·D 文中采用 VB6. 0 实现了经典排序算法 冒泡 、 b i y 1 y i - 1 1 简单选择 、 快速 、 、 直接插入 、 归并 、 的 堆 希尔 、 桶式 b i x 2 x i - 1 2 M ·D 2 排序演示过程 其中使用了系统的画图函数 line 及 延时函数 delay. 在数据结构的组织上采用数组分别 ai b i y2 y ai - 1 i - 1 2 存储颜色值 、待排序元素值及待排序元素的坐标值 .式中 M 是位移常数 x 01 y 01 和 x 02 y 02 为初始 现用冒泡排序介绍其算法的实现过程 . 为达到算法 的通用性 本文力图给出形式语言描述 .坐标值 3. 1 算法步骤 Step0 : for i : 1 to n do Begin Input ai 输入待排序元素 Ci ai mod C 1 设置颜色值 b i x 1 x i - 1 1 M D 进行坐标变换 b i y1 y i - 1 1 b i x 2 x i - 1 2 MD b i y2 ai / ai - 1 y i - 1 2 line b i x 1 b i y 1 - b i x 2 b i y 2 画矩形 图 1 元素矩形图形坐标 图形 6期 第 姜林 等 : 基于自适应的排序过程动画演示算法及实现 161 endStep1 : for i 1 to n do For j 1 to n - i do BeginStep1. 1 : begin c0 Constant 设置颜色值为常量 如红色 line b j x 1 b j y 1 - b j x 2 b j y2 在 aj 图2 动态生成数据图形和 aj 1 上进行特定的同色重画 line b j 1 x 1 b j 1 y 1 - b j 1 x 2 b j 1 y2 delay t 实现延时操作 以达到视觉暂留实现动画效果 cj aj mod C 1 在 aj 上以原颜色进行重画 line b j x 1 b j y1 - b j x 2 b j y 2 cj 1 aj 1 mod C 1 在 aj 1 上以原颜色进行重画 line b j 1 x 1 b j 1 y 1 - b j 1 x 2 b j 图3 比较闪烁效果1 y2 endStep1. 2 : If aj gt aj 1 Then aj Ζ aj 1Step1. 3 : delay t 实现延时操作 c0 B Gcolor 设置当前色为背景色进行重画 aj 和 aj 1从而实现 效果 “擦除” line b j x 1 b j y1 - b j x 2 b j y 2 图4 擦除效果 line b j 1 x 1 b j 1 y 1 - b j 1 x 2 b j 1 y2 Step1. 4 : delay t 实现延时操作 cj 1 Ζ cj 换 aj 和 aj 1 元素的颜色值 b j y 2 Ζ b j 1 y2 交换 aj 和 aj 1 元素的 y 轴上的坐标 line b j x 1 b j y1 - b j x 2 b j y 2 以交换 图5 交换操作效果后的颜色及坐标进行重画 line b j 1 x 1 b j 1 y 1 - b j 1 x 2 b j 4 结束语1 y2 end 文中通过研究动画演示算法中颜色变换 坐标3. 2 算法实现结果 变换 擦除法技术 提出了一种新的基于自适应排序 算法步骤分两大步 : 过程演示算法 并给出了实现步骤及实现结果 同时 Step0 为自适应生成数据及图形 它可以动态 也开发了其相关辅助功能 如动画控制中的暂停 继接收数据 并动态生成颜色值及矩形图形 其程序结 续播放 代码与动画的同步过程等 . 本算法容易理果如图 2 所示 . 解 实现简单 效果较好 具有一定的通用性 对动态 Step1 实现排序过程的动态演示 它分为 4 个 演示动画设计具有较高的借鉴意义 .小步骤 : Step1. 1 实现比较操作 具有动态闪烁效 参考文献 :果 如图 3 所示 Step1. 2 实现元素值的交换 Step 1 孙海民 . 设计开发“数据结构”教学软件的现状分析研究1. 3采用擦除法动画技术 将待交换元素在原地以背 J . 计算机教育 2005 10 :22 - 24.景色进行重画 实现擦除效果 如图 4 所示 Step 2 Estivill - Castro V. A survey of adaptive sorting algorit hms1. 4采用元素交换后的颜色值和坐标值进行重画 从 J . ACM Comput . Surv 1992 24 4 :441 - 476.而实现元素的动态交换效果 如图 5 所示 . 下转第 165 页 6期 第 陈劭 等 : 可配置处理器环境下的异构多核结构 165对执行 IDCT 和 CONV 部分的 Supporting Core 进 4 结束语行了数据统计 如表 1 所示 . 文中描述了一种针对某一类应用的异构多核结 构的设计方案 以及其在 Tensilica 平台上的实现 . 通 过在该结构上运行指令扩展优化后的 Motion Jpeg 程 序 将得到的数据与指令扩展前的程序以及同构多核 的执行情况分别进行比较 显示出了该异构多核结构 在实际应用中的高效执行能力 . 下一步将会把更多的 实用性应用程序移植到此多核结构平台上来运行 借 以对该结构以及 TIE 指令扩展做出改良和调整 . 图6 Motion Jpeg TIE 指令扩展线程执行时间比例图 参考文献 : 表 1 IDCT Core Core 1 及 1 Fei Sun Srivat hs Ravi Anand Raghunat han. Application2 CONV Core Core 2 执行数据统计 specific heterogeneous multiprocessor synt hesis using exten2 IDCT Core CONV Core sible processors J . IEEE Transactions on CAD of Inte2 New Instructions 10 14 grated Circuits and Systems 2006 25 9 : 1589 - 1602. New Registers 4 28 2 Chris Rowen. Engineering t he complex SOC fast flexibel Extra Gates 70904 63869 design wit h configurable processors M . USA : Prentice Total Gates 139904 132869 Hall 2005. Speedup Effect 380 309 3 David Butenhof . Programming wit h POSIX t hreads M . USA :Addison - Wesley 2003. 可以看出 通过指令扩展 CONV 部分执行的 4 林明亮 祝永新 . 基于 SimpleScalar 的异构多核仿真器加速比超过了 3 倍 而 IDCT 部分的加速比几乎达 J . 微电子学与计算机 2007 24 7 :2 - 5.到了 4 倍 . 5 Chen Guobing Chen Tianzhou Yan Like. On - chip com2 将此异构结构与一个 、 “超级同构结构” 一个单 munication framework design for embedded heterogeneous核的 Master Core 以 及 一 个 未 经 过 TIE 扩 展 的 D . Zhejiang : Zhejiang University 2007.XTSC Core 进行了对比 . 此同构结构包含有 3 个 6 Seng Lin Shee Andrea Erdos Sri Parameswaran. Hetero2Master Core 同 样 运 行 划 分 为 3 线 程 的 Motion geneous multiprocessor implementations for J.上一篇:FX2N PLC与计算机串口通讯程序实现