摘要:数据结构是大多数计算机类别专业学生的必修课。本课程的主要目的是培养学习者的数据抽象能力和用计算机思考的能力。它是抽象的,初学者很难学习。为了将抽象的知识生动地呈现出来,可以设计数据结构动态演示系统,通过图形和动画实现数据结构和算法的动态演示,帮助大家进一步理解数据结构的基本的原理和算法。在这门课程中,排序算法在计算机的科学中有着非常深刻的意义,并得到了广泛的应用。同时,它还应用了之前所学的各种数据结构,这是算法中一个集中而又困难的章节。因此,本主题适用于各种内部排序算法,包括直接插入排序、冒泡排序、直接选择排序、hill排序、快速排序、堆排序、合并排序和基数排序。设计并开发了一套教学动态演示系统,该系统可以对任何满足要求的随机输入进行排序,对多个输入比较统一算法的排序过程指标,对同一输入比较多个算法的排序结果。
本文需要完成的任务目标是:本课题需要设计开发一个“数据结构”课程排序算法动态演示系统,实现多种内部排序算法的演示与比较。该系统的要求:(1)采用三层的架构,降低系统的耦合的程度。(2)界面比较友好,操作较为简易。(3)实现多种内部排序。(4)可以使用随机数据作为输入。(5)可以记录关键指标,如关键词比较次数、移动次数等。(6)可以比较多个输入或多个算法测试结果。
关键词:数据结构,演示系统,排序算法
目录
摘要
Abstract
1 绪论-1
1.1研究现状-1
1.2研究目的-1
1.3课题需要解决的关键问题-1
1.4本文的主要的内容-2
1.5论文组织结构-2
2 系统需求分析-3
2.1功能需求的分析-3
2.2性能对比演示功能-3
2.3性能对比演示功能SC图-4
2.4性能对比演示功能具体实现-4
2.5性能需求的分析-5
2.6开发环境需求-5
3 概要设计-6
3.1系统的主要功能和体系模块-6
3.2系统说明-7
4 详细设计与实现-9
4.1排序算法具体内容-9
4.1.1排序的基本的概念-9
4.1.2排序的分类-9
4.1.3排序的算法的性能的评价-9
4.1.4算法本身的复杂程度-9
4.2 各类排序算法实现-9
4.2.1插入排序-9
4.2.2希尔排序-10
4.2.3冒泡排序-11
4.2.4快速排序-12
4.2.5直接选择排序-13
4.2.6堆排序-14
4.2.7归并排序-19
4.2.8基数排序-19
4.3界面的设计和实现-21
4.3.1面板实现-21
4.3.2随机数组生成控件描述-22
4.3.3各类排序按钮触发事件-22
4.3.4关键字设置-22
4.3.5关键字移动次数记录事件触发-23
4.3.6正则表达式设置-23
4.4单个排序算法动态演示和实现-24
4.5算法对比演示和实现-31
4.5.1 动态实现-32
4.5.2 结果对比-32
4.6算法代码/伪代码显示功能-34
4.7用户界面原型-34
5 结论-37
致谢-38
参考文献-39