资源预览内容
第1页 / 共82页
第2页 / 共82页
第3页 / 共82页
第4页 / 共82页
第5页 / 共82页
第6页 / 共82页
第7页 / 共82页
第8页 / 共82页
第9页 / 共82页
第10页 / 共82页
亲,该文档总共82页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基于姓名排序算法动态演示系统的设计与实现毕业设计目 录引言11系统背景及意义21.1系统背景21.2系统目的及意义21.3开发工具介绍22排序算法52.1直接插入排序52.2折半插入排序62.3快速排序62.4选择排序82.5归并排序92.6链表插入排序102.7堆排序112.8基数排序(MSD)123系统设计143.1系统模块结构143.2 模块算法流程图144实现214.1 直接插入排序214.2 折半插入排序214.3选择排序224.4快速排序224.5归并排序234.6链表插入排序234.7堆排序244.8基数排序(MSD)255测试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语言Java8是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由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平台微型版)。主要特性:Java语言是易学的10。Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C+中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。Java语言是强制面向对象的8。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C+语言只对虚函数使用动态绑定10。总之,Java语言是一个纯的面向对象程序设计语言。Java语言是分布式的10。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。Java语言是健壮的10。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。Java语言是体系结构中立的10。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。Java语言是可移植的10。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。Java语言是解释型的10。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。Java是性能略高的10。与那些解释型的高级脚本语言相比,Java的性能还是较优的。Java语言是原生支持多线程的10。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。Java语言是动态的10。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性, 这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处 可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。(2) JDK运行环境JDK8(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。没有JDK的话,无法编译Java程序,如果想只运行Java程序,要确保已安装相应的JRE。JDK包含的基本组件包括:javac 编译器,将源程序转成字节码。jar 打包工具,将相关的类文件打包成一个文件。javadoc 文档生成器,从源码注释中提取文档。jdb debugger,查错工具。java 运行编译后的java程序(.class后缀的)。appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。Jconsole: Java进行系统调试和监控的工具。 (3) MyEclipse开发工具MyEclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称MyEclip
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号