第4章 数组与Arrays类.pptx

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

第4章数组与Arrays类2024/9/101主要内容● 数组的引用● 数组的排序● 数组的二分查找●数组的复制● 数组的比较● 数组的匹配● 公共子数组● 数组的更新● 数组的前缀运算● 数组的动态遍历● 数组与洗牌● 数组与生命游戏数组是最常用的一种线性数据结构,数组一旦被创建,那么数组的长度(数组的元素的个数)就不可以再发生变化,即不可以对数组进行删除,添加或插入操作。关于数组的算法还是非常多的,比如排序,复制,二分查找,动态遍历等。

4.1引用与参数存值?2024/9/102

2024/9/1034.1引用与参数存值1.数组的引用数组属于引用型数据,即数组中存放着一个引用值,数组使用下标运算访问自己的元素(下从0开始,每个元素的下标等于它前面的元素的个数)。可以让System类调用静态方法intidentityHashCode(Objectobject)返回(得到)数组a的引用:intaddress=System.identityHashCode(a);也可以让数组a调用inthashCode()方法返回(得到)数组的引用:intaddress=a.hashCode();两个类型相同的数组,一旦二者的引用相同,二者就具有相同的元素。

2024/9/1044.1引用与参数存值1.数组的引用数组属于引用型数据,即数组中存放着一个引用值,数组使用下标运算访问自己的元素(下从0开始,每个元素的下标等于它前面的元素的个数)。例子1中的主类Example4_1使用了intidentityHashCode()方法和inthashCode()方法,注意例子1的输出结果,特别是数组b的值(b的引用)赋值给数组a之后,程序的输出结果。例子1Example4_1.java

2024/9/1054.1引用与参数存值2.参数存值使用参数存储值就是一个方法可以将某些数据存放在参数中,如果参数是引用类型,比如数组,那么方法执行完毕,保存在参数中的值一直还存在、不会消失。例子2Example4_2.java当a,b,c构成等边三角形时返回3,将三角形面积存放在数组area的元素中,构成等腰三角形时(不是等边)返回2,将三角形面积存放在数组area的元素中,构成三角形时(不是等边,也不是等腰)返回1,将三角形面积存放在数组area的元素中,不构成三角形时返回0,将Double.NaN(没有值)存放在数组area的元素中。Triangle.java

2024/9/1064.1引用与参数存值2.参数存值使用参数存储值就是一个方法可以将某些数据存放在参数中,如果参数是引用类型,比如数组,那么方法执行完毕,保存在参数中的值一直还存在、不会消失。例子3Example4_3.java例子3中char型数组的元素值是某个小写英文字母,FindLetters类中的findMaxCountLetters(char[]english,int[]saveCount)方法返回char型数组中出现次数最多的字母之一,并将这个字母出现的次数存放到参数指定的int型数组的元素中。FindLetters.java

4.2数组与排序2024/9/107排序算法是重要的基础算法。各种排序算法都是非常成熟的算法,Arrays类封装了快速排序和归并排序,编写程序时直接使用即可。

2024/9/1084.2数组与排序1.快速排序?双轴快速排序不是稳定排序。稳定排序是指,数组里大小一样的数据,排序后,保持原始的先后顺序不变。起泡法是稳定排序,而选择法是不稳定排序。如果是给对象排序(非基本类型数据),那么创建对象类需要实现ComparableT泛型接口来指定对象的大小关系,否则,sort()方法将按对象的引用排序对象,这种排序往往没有什么实际意义(就像生活中,很少按人的身份证排序)。快速排序是一种基于递归的经典排序算法。它的思路是选定一个基准元素,然后把比这个元素小的元素放在它左边,比它大的元素放在它右边。再分别对它左边和右边的元素进行递归处理,直到排序完成。

2024/9/1094.2数组与排序1.快速排序?例子4Example4_4.javaStudent.java?主类Example4_4分别使用Arrays类的sort(Object[]a)方法和我们自己定义的BasicSort类中的方法,按身高(height)排序Student类的对象。BasicSort.java

2024/9/10104.2数组与排序2.归并排序例子5Example4_5.javaMerge.java?例子5里,我们依然给出了归并排序算法,其目的是体现递归算法的重要性(归并排序使用了递归算法),在实际应用

文档评论(0)

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

人力资源管理师、教师资格证持证人

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

版权声明书
用户编号:6152114224000010
领域认证该用户于2024年03月13日上传了人力资源管理师、教师资格证

1亿VIP精品文档

相关文档