网站大量收购独家精品文档,联系QQ:2885784924

JAVA数据结构和算法_2.pdf

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA数据结构和算法_2

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

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档