1 / 48
文档名称:

Java数据结构和算法.docx

格式:docx   大小:379KB   页数:48
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Java数据结构和算法.docx

上传人:在水一方 2019/6/16 文件大小:379 KB

下载得到文件列表

Java数据结构和算法.docx

相关文档

文档介绍

文档介绍:Java数据结构和算法一、数组于简单排序 1二、栈与队列 3三、链表 3四、递归 3五、哈希表 3六、高级排序 3七、二叉树 3八、红—黑树 3九、堆 3十、带权图 3一、数组于简单排序数组数组(array)是相同类型变量的集合,可以使用共同的名字引用它。数组可被定义为任何类型,可以是一维或多维。数组中的一个特别要素是通过下标来访问它。数组提供了一种将有联系的信息分组的便利方法。一维数组一维数组(one-dimensionalarray)实质上是相同类型变量列表。要创建一个数组,你必须首先定义数组变量所需的类型。通用的一维数组的声明格式是:typevar-name[];获得一个数组需要2步。第一步,你必须定义变量所需的类型。第二步,你必须使用运算符new来为数组所要存储的数据分配内存,并把它们分配给数组变量。这样Java中的数组被动态地分配。如果动态分配的概念对你陌生,别担心,它将在本书的后面详细讨论。数组的初始化(arrayinitializer)就是包括在花括号之内用逗号分开的表达式的列表。逗号分开了数组元素的值。Java会自动地分配一个足够大的空间来保存你指定的初始化元素的个数,而不必使用运算符new。Java严格地检查以保证你不会意外地去存储或引用在数组范围以外的值。Java的运行系统会检查以确保所有的数组下标都在正确的范围以内(在这方面,Java与C/C++从根本上不同,C/C++不提供运行边界检查)。多维数组在Java中,多维数组(multidimensionalarrays)实际上是数组的数组。你可能期望,这些数组形式上和行动上和一般的多维数组一样。然而,你将看到,有一些微妙的差别。定义多维数组变量要将每个维数放在它们各自的方括号中。例如,下面语句定义了一个名为twoD的二维数组变量。inttwoD[][]=newint[4][5];简单排序简单排序中包括了:冒泡排序、选择排序、插入排序;:假设有N个数据需要排序,则从第0个数开始,依次比较第0和第1个数据,如果第0个大于第1个则两者交换,否则什么动作都不做,继续比较第1个第2个…,这样依次类推,直至所有数据都“冒泡”到数据顶上。冒泡排序的的java代码:PublicvoidbubbleSort(){intin,out;for(out=nElems-1;out>0;out--)for(in=0;in<out;in++){If(a[in]>a[in+1])Swap(in,in+1);}}算法的不变性:许多算法中,有些条件在算法执行过程中始终是不变的。这些条件被称为算法的不变性,如果不变性不为真了,则标记出错了;冒泡排序的效率O(N*N),比较N*N/2,交换N*N/4;:假设有N条数据,则暂且标记第0个数据为MIN(最小),使用OUT标记最左边未排序的数据,然后使用IN标记第1个数据,依次与MIN进行比较,如果比MIN小,则将该数据标记为MIN,当第一轮比较完后,最终的MIN与OUT标记数据交换,依次类推;选择排序的java代码:PublicvoidselectSort(){Intin,out,min;For(out=0;out<nElems-1;out++){Min=out;For(in=out+1;in<nElems;in++)If(a[in]<a[min])Min=in;Swap(out,min);}}选择排序的效率:O(N*N),比较N*N/2,交换<N;选择排序与冒泡排序比较,比较次数没有明显改变,但交换次数明显减少了很多;:插入排序是在部分数据有序的情况下,使用OUT标记第一个无序的数据,将其提取保存到一个中间变量temp中去,使用IN标记空位置,依次比较temp中的值与IN-1的值,如果IN-值大于temp的值,则后移,直到遇到第一个比temp小的值,在其下一个位置插入;插入排序的java代码:PublicvoidInsertionSort(){Intin,out;For(out=1;out<nElems;out++){Longtemp=a[out]In=out;While(in>0&&a[in-1]>temp){A[in]=a[in-1];--in;}A[in]=temp;}}插入排序的效率:O(N*N),比较N*N/4,复制N*N/4;插入排序在随机数的情况下,比冒泡快一倍,比选择稍快;在基本有序的数组中,插入排序几乎只需要O(N);在逆序情况下,并不比冒泡快;二、栈与队列1、栈的定义    栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。(1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。(2)当表中没有元素时称为空栈。(3)栈为后进先出(LastIn

最近更新

2024年菏泽学院马克思主义基本原理概论期末考.. 12页

2024年蕲春县招教考试备考题库带答案解析(夺.. 31页

2024年襄阳科技职业学院马克思主义基本原理概.. 12页

2024年西安医学高等专科学校马克思主义基本原.. 13页

2024年西昌民族幼儿师范高等专科学校马克思主.. 12页

2024年贵州中医药大学马克思主义基本原理概论.. 12页

2024年贵州铝厂职工大学马克思主义基本原理概.. 12页

2024年赤峰工业职业技术学院马克思主义基本原.. 12页

2024年辽宁机电职业技术学院马克思主义基本原.. 12页

2024年遂平县幼儿园教师招教考试备考题库含答.. 31页

2024年邹平县招教考试备考题库附答案解析(夺.. 30页

2024年郑州铁路职业技术学院马克思主义基本原.. 12页

2024年重庆人文科技学院马克思主义基本原理概.. 12页

2024年重庆电力高等专科学校马克思主义基本原.. 13页

2024年镇巴县招教考试备考题库带答案解析(夺.. 30页

2024年长春建筑学院马克思主义基本原理概论期.. 12页

2024年长沙轨道交通职业学院马克思主义基本原.. 13页

2024年阜阳师范大学马克思主义基本原理概论期.. 13页

2024年陕西航空职业技术学院马克思主义基本原.. 12页

2024年霍城县幼儿园教师招教考试备考题库附答.. 31页

2024年青海省联合职工大学马克思主义基本原理.. 12页

2024年饶平县幼儿园教师招教考试备考题库及答.. 30页

2024年麻江县幼儿园教师招教考试备考题库带答.. 31页

2024年黑龙江司法警官职业学院马克思主义基本.. 12页

2024年齐齐哈尔工程学院马克思主义基本原理概.. 13页

2025年万年县幼儿园教师招教考试备考题库含答.. 32页

绿色环保产品研究 37页

2025年上海医药职工大学马克思主义基本原理概.. 13页

高效节能并卷机设计研究 37页

绿色消费政策与消费者行为的关联性研究 30页