05数组应用二维数组.docx
- 文档编号:12986562
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:13
- 大小:499.19KB
05数组应用二维数组.docx
《05数组应用二维数组.docx》由会员分享,可在线阅读,更多相关《05数组应用二维数组.docx(13页珍藏版)》请在冰点文库上搜索。
05数组应用二维数组
第5天数组的应用
今日任务:
1、理解并掌握一种数组排序的算法;
2、理解并掌握数组查找的算法;
3、理解数组的使用思想;
4、理解查表法,并会使用数组实现简单的查表法的应用;
5、理解并掌握二维数组的概念和使用;
1.数组的简单应用
1.1.数组平均值:
例子:
求下列数字的平均值:
1.0,2.4,3.5,4.3,5.1,6.8,7.2,8,9,10
1.2.数组求最大值
例子:
求下列数字的最大值:
1.0,2.4,3.5,4.3,5.1,6.8,7.2,8,9,10
1.3.将数组中的元素转为字符串
因为直接打印数组,输出的是数组的内存地址,不是数组的元素,所以要打印输出所有数组中元素的值,需要将数组中数据转为字符串;
例子:
将数组{1,2,3,4}转为:
”[1,2,3,4]”;
1.4.将数组中元素倒序;
例子:
数组{1,2,3,4,5}倒序后为{5,4,3,2,1};
思路:
2.数组排序
2.1.排序的概念和种类
生活中的排序:
排队;买东西时的商品排序等等……
排序:
按一定规律,将原来没有顺序的数据变得有规律;
升序:
从小往大排列;
降序:
从大往小排列;
Java是用来解决生活中的问题的,生活中排序的要求非常常见,在Java中,排序也是一个很常见的操作;
所以JDK中已经有实现好的方法,开发中直接拿来用就行了;
但是,面试中,会考排序的操作;
2.2.排序的方法
排序的算法,主要的有七种,我们只要掌握最常见的一种算法就行了;
选择排序:
思路:
代码:
3.数组查找
就是在一个数组中,找到一个元素的位置;
3.1.普通查找:
需求:
在数组{1,7,3,8,5,4,2,6,9}中找到数字7,并返回它第一次出现的位置;
总结:
普通查找,就是遍历数组中的每一个值,一个一个比较;
缺点:
如果数组中元素比较多,而且要查找的元素位置比较靠后,这样找效率很低;
如果数组中的元素是有序的,就可以使用一种快速的查找方法:
二分查找法(折半查找)
3.2.二分查找(折半查找):
注意:
1、使用二分查找,必须是在有序的数组中;
2、二分查找,不保证找到的是数字第一次出现的位置;
对于无序的数组,要查找,只能使用普通查找法;
4.数组的使用思想
4.1.数组的特点:
数组,是一个容器,可以存放相同类型的数据;
数组有容量大小,使用length属性可以获取,方法是:
数组名.length;
数组一旦创建,容量大小就固定不变;
数组中的元素都有索引,对数组元素的操作就是通过索引实现的;
索引的特点是,从0开始,连续递增,最大值是数组容量减一;
4.2.什么时候使用数组?
1、在数据量比较多,而且还是相同类型的;
2、数据量是确定的,不确定,就不知道该创建多大的数组装;
3、数据可以有顺序的,可以通过索引来操作的;
不满足上面的条件,但是同样数据量比较大,该怎么办呢?
使用集合;
5.查表法
也是一种解决问题的思路;
在两种数据中建立一个对应的关系,使用容易的便于理解和操作的数据来表示比较难以理解和操作的数据,保存这个对应关的的表格,就是查表法要查得表;
在数组中,也存在一种对应关系,就是索引和数组中元素的一一对应的关系,所以通过数组,可以简单的实现一个查表法的应用;
需求:
使用查表法,实现通过日期,获取星期几;
6.二维数组
需求:
求一个年级所有学生的总分;
一个班级的所有学生的总分,使用一个数组,记录所有学生的分数,转换成数组求和的问题;
一个年纪,包含多个班级,怎么表示多个班级呢?
一个班级,用一个数组表示,多个班级,也就是多个数组,可以使用二维数组;
6.1.二维数组的定义:
一维数组概念:
就是前面我们学的数组,数组中的元素,都是一个普通数据(非数组的数据)
二维数组概念:
就是,元素全部是一个一维数组的数组;
6.2.二维数组使用:
声明一个二维数组:
使用符号[][]表示;
数据类型[][]数组名=new数据类型[二维数组的容量][二维数组中一维数组的容量];
不推荐的写法:
int[]arr[]=newint[][];
intarr[][]=newint[][];
二维数组的内存图解;
int[][]array=newint[3][];
6.3.声明二维数组时直接赋值:
如果事先知道二维数组中的值,也可以在创建数组的时候直接给这个数组中的元素赋值;
写法是:
int[][]array=newint[][]{{1,2},{3,4,5},null};
二维数组的这种定义格式,也有简写形式,而且和一维数组一样,简写形式,不能和数组的声明写在两行;
6.4.二维数组的简单应用
需求:
二维数组求和;
总结:
二维数组的遍历,需要使用嵌套循环;
7.数组综合练习
需求:
多个学生按不同成绩降序排序(每个学生拥有三门成绩)
分析:
每个学生都有名字,和三门成绩;
名字是一个字符串;成绩都是double类型的;
应该使用什么保存呢?
因为名字的类型和成绩的不一样,所以要分开存储;
姓名可以使用字符串数组表示;
成绩,可以使用二维数组表示;
代码在ArrayDemo4.java;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 05 数组 应用 二维