基于姓名排序算法动态演示系统的设计与实现说明书

2019-03-15 20:20

陕西理工学院毕业设计

基于姓名排序算法动态演示系统的设计与实现

[摘要]在有限的资源空间里,为了提高运算处理数据的速率,使用高效算法必不可少。本文以Java作为开发工

具,设计与开发了基于姓名排序算法动态演示系统。该系统实现了插入排序(链表插入排序、直接插入排序、折半插入排序等)、交换排序、选择排序、归并排序、堆排序等算法的动态演示。系统界面美观,操作简单,可作为排序可视化教学演示软件。

[关键词]Java;排序算法;动态演示

陕西理工学院毕业设计

The Design and Implementation of Dynamic Presentation

Systems based on Name Sorting Algorithm

Abstract:In the space limited resources, in order to improve the rate of operation of the data processing, the use of

efficient algorithm is essential. In this paper, Java as a development tool, designed and developed based on the name of sorting algorithm dynamic presentation systems. The system implements insertion sort (list insertion sort, insertion sort, binary insertion sort, etc.), exchange sort, selection sort, merge sort, heap sort, such as dynamic presentations algorithm. System interface is beautiful, simple operation, can be used as sort of teaching visual presentation software.

Key words: Java ; Sorting Algorithm;Dynamic Presentation

陕西理工学院毕业设计

目 录

引言 ...................................................... 1 1系统背景及意义 ........................................... 2

1.1系统背景 ................................................ 2 1.2系统目的及意义 .......................................... 2 1.3开发工具介绍 ............................................ 2

2排序算法 ................................................. 5

2.1直接插入排序 ............................................ 5 2.2折半插入排序 ............................................ 6 2.3快速排序 ................................................ 6 2.4选择排序 ................................................ 8 2.5归并排序 ................................................ 9 2.6链表插入排序 ........................................... 10 2.7堆排序 ................................................. 11 2.8基数排序(MSD) ........................................ 12

3系统设计 ................................................ 14

3.1系统模块结构 ........................................... 14 3.2 模块算法流程图 ......................................... 14

4实现 .................................................... 21

4.1 直接插入排序 ........................................... 21 4.2 折半插入排序 ........................................... 21 4.3选择排序 ............................................... 22 4.4快速排序 ............................................... 22 4.5归并排序 ............................................... 23 4.6链表插入排序 ........................................... 23 4.7堆排序 ................................................. 24 4.8基数排序(MSD) ........................................ 25

5测试 .................................................... 26 总结 ..................................................... 34 致谢 ..................................................... 35 参考文献 ................................................. 36 科技外文文献 ............................................. 37 附录A:基于姓名排序算法动态演示系统的设计与实现源代码 ..... 47 附录B:使用说明书 ......................................... 80

陕西理工学院毕业设计

引言

计算机技术的日益发展,其应用早已不局限于简单的数值运算。涉及到问题的分析、数据结构框架、以及插入、删除、排序查询等复杂的非数值处理和操作。“数据结构”是计算机程序设计的重要基础,也是计算机相关专业的一门重要基础课程和核心课程。其加强对新数据类型的研究和寻找更适用更完善的数据结构类型,也是今后数据结构研究的重要内容.抽象数据结构类型的出现,使

[1]

得在面向对象的语言中,值和变量的类型不再单一,语言中的操作可以作用于多种类型的对象。因此,要建立良好的数据结构,首先对系统按某种原则进行分解,使系统中各模块间独立性强,依赖性小,结构灵活,易于维护。然而,一个良好的分解,要依赖于抽象,只有对系统抽象到一定的程度,才能更好地分解。由于不以记录为基础的递归数据类型的出现,给许多高级应用领域提供了更好地表达复杂数据对象的方法。数据结构从一维二维向三维和多维数据结构的研究意义以及如何实现它

[2]

们等等,都是数据结构今后研究的重要内容。

[1]

数据结构基本元素内容的发展变化,为数据结构的研究开拓了一个新的方向。许多国内外学者都把数据结构的基本元素——数据,进一步扩充为知识,提出了知识的数据结构概念,这样就在更高层次上表示信息的知识代替了明显表示信息逻辑数据,把表示方法更加复杂的知识代替了较为简单的数据,开拓了数据结构研究的新方向.在原有的数据扩展到知识以后,除了基本元素结构表示的不同需要研究以外,更多地应加强对于基本元素间关系和运算以及它们的多种限定性和变化性方面的研究。总之,数据结构由于其基本元素的内容和本质的不断变化,它作为一门学科也要不断变化和适应新的要求。

各个应用领域迫切需要解决的问题,也是当前数据结构基本的研究内容之一在计算机科学与信息融为一体的今天,研究数据结构,既要从计算机技术的发展考虑,也要从信息技术的发展考虑,特别需要重视从理论到实际的转化研究。许多诸如数据工程多媒介数据库和知识工程等等新发展起

[11]

来的学科,也都大量涉及封数据结构的理论和技术, 迫切要求开拓与之对适应的数据结构。对于初学者,它对程序设计思想的建立、提升有着重要的作用,既为后续的计算机课程奠定了一个较为扎实的基础,又可提高分析问题和解决问题的能力,而排序更是“数据结构”里面的核心内容。排序算法的学习就是为以后利用计算机资源高效开发非数值处理的计算机程序打下坚定的理论、方法和技术基础。因此,本文以java为开发语言,设计开发了基于姓名排序算法动态演示系统,有助于初学者的形象直观的学习排序算法。

第 1 页 共 80 页

陕西理工学院毕业设计

1系统背景及意义

1.1系统背景

由于排序在计算机图形、计算机辅助设计、机器人、模式识别、基因排序工程及统计学等领域具有广泛应用,所以对排序的研究既有理论上的重要意义,又有实际应用价值。再加上现在信息产业的迅速发展,信息的流通量越来越大,如此庞大并且杂乱无章的信息数据十分难以管理和查询,就更加需要一种十分快捷而有效的编排手段来整理这些数据信息,让我们的工作效率得以提高[4]。 1.2系统目的及意义

随着计算机技术的发展,各种排序算法不断的被提出。排序算法在计算机科学中有非常重要的地位,且排序在人们的日常生活和学习、科研、生产等各个方面有着重要的应用,因此掌握常用的排序算法是很有必要。在以后的发展中,排序对我们的学习和生活的影响会逐渐增大,因此设计开发一个排序算法动画演示系统,以提高自己对排序算法的掌握程度,并希望该系统有助于初学者直观学习排序算法。此次毕业设计一方面使自己更好的掌握排序的知识,另一方面锻炼一下独立开发系统的能力。

1.3开发工具介绍

(1) Java语言

[8]

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。Java分为三个体系JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版),JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。主要特性:

[10]

Java语言是易学的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。

[8]

Java语言是强制面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为

[10]

implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。

[10]

Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

[10]

Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。 Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。

[10]

Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。

[10]

Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java

第 2 页 共 80 页


基于姓名排序算法动态演示系统的设计与实现说明书.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:智能传感器在数字化时代下应运而生

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: