Java基础第七天总结——数组

目录:

一、数组中常见的算法

二、Arrays工具类的使用

三、数组使用中的常见异常

/*--------------------黄金分割线------------------*/

一、数组中常见的算法

1. 数组元素的赋值(杨辉三角、回形数等)
2. 求数值型数组中元素的最大值、最小值、平均数、总和等
3. 数组的复制、反转、查找(线性查找、二分法查找)
4. 数组元素的排序算法
 
数组的复制:
arr = arr1;
arr和arr1存的地址值相同,都指向了堆空间的唯一的一个数组实体。所以arr内元素变化(实际是数组对象在内存中发生了变化),打印出的arr1依旧是指向的同一个数组。
数组元素的赋值:
arr[0] = arr1[0];对数组元素的赋值。
 
注:除了基本数据类型的变量,实际操作都是对内存中的实体进行操作。基本数据类型传的是实际值,引用数据类型传的是对象的地址值。
 
线性查找的思想:
1.在给定的一列值中,进行顺序查找,从头到尾进行对比查找。
确认要查找的元素,遍历数组,如果.equals()内容相等,则为找到,break;如无相等内容,则为未找到。
 
二分法查找的思想:
1.必须为有序数组
2.确定所需查找的关键字,定义初索引,末索引。定义一个中间关键字middle。定义一个循环结构:将表中间的关键字middle与要查找的关键字进行对比,如果相等则取middle,break;否则将表分为前后两个子表,如果所查关键字大于中间关键字middle,则在对比前一子表的中间的关键字middle,此时末索引则为middle - 1;如果小于middle,则再查后一子表的中间关键子middle。此时初索引为middle + 1;以此循环找到middle和所需要查的关键子相等即可。
备注:定义一个boolean isFlag = true,在for循环外根据isFlag的结果输出未找到。
 
数组元素的排序算法:
排序算法分类:内部排序和外部排序
内部排序:不借助外部存储,排序操作直接在内存中完成
外部排序:借助外部存储,数据量大,可以认为外部排序是由多次内部排序组成的。
 
十大内部排序算法:

 算法的5大特征:

冒泡排序的排序思想:

1.比较相邻的两个数,如果第一个比第二个大,则交换。(升序)

2.对每一对相邻元素进行对比,最后的元素为最大的数。

3.重复以上操作,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤。

快速排序的排序思想:

1.正式开发中常见的排序方法。

2.在数列中挑一个元素,称为“基准”。

3.定义一个low和high,比较这个基准,当发现有比基准小的数放前面,比这个基准大放在后面。当low和high相交的时候,low和这个基数交换。则基数左边为小于基数,右边为大于基数。

二、Arrays工具类的使用

 java.util.Arrays类即为操作数组的工具类,包含用来操作数组(如排序和搜索)的各种方法。

三、数组使用中的常见异常

1.数组角标越界异常(ArrayIndexOutOfBoundsException)

访问到数组中的不存在的角标时发生

 2.空指针异常(NullPointerException)正式开发中比较常见

引用没有指向实体,却在操作实体中的元素时。

猜你喜欢

转载自www.cnblogs.com/zhoutie170821/p/11755706.html