一、数组
1、数组的扩容:
先定义一个原数组
然后定义一个新数组,长度比原数组长
遍历数组,把原数组的内容转移到新数组中
给新数组多的位赋值
将新数组地址赋给原数组
遍历输出原数组(此时的原数组已完成扩容)
2、数组的缩容
与扩容基本一致
3、数据拷贝
1) 常规:使用循环遍历
2)使用Scanner类:
原数组为arr1,新数组为arr2;
使用System.arraycopy(原数组,复制原数组起始下标,新数组,新数组起始下标,复制长度)
遍历输出
3)使用Arrays类:
定义原数组;
使用Arrays类复制:Arrays.copyof(原数组,新数组长度)
遍历输出新数组
4、冒泡排序法:
从第一个数开始取,分别与之后的数进行比较,如果第一个数大就交换位置;执行一次后,最大值放在最后面,重复操作,完成排序。
内层循环次数为length-1:完成i次后,后面i个数位置固定,已不需要重新排序
标志位flag:存在没执行完所有次数已完成排序的情况,此时可以提前完成排序:当当前值已经是最小值时,不需要交换顺序,即停止当前次循环,执行下次循环
5、选择排序
假定第一个数为最小值,将其分别与之后的值进行比较,将最小值的下标标记,结束当前循环后,将最小值放到第一位;然后从第二次进行循环...
6、调用Arrays类进行排序
调用格式: Arrays.sort(数组名); 默认是从小排到大
7、二分法查找
模仿二叉树,在一串数中,先取下标为0为min,下标为.length-1为max;
然后取中间值为mid,判断需要查找的值在min~mid还是mid~max,然后重新赋值,重复操作
知道arr[mid]的值为需要查找的值,输出mid
PS:二分法查找需要顺序数列
8、二维数组
1)静态定义
int[][] arr={{1,2,3},{4,5,6},{7,8,9}};
2)动态定义
int[][] arr=new int[3][3];
3)赋值
arr[3][3]=100;
4)循环输入
5)遍历二维数组
9、杨辉三角
注意找规律外侧数值为1,内部数值为其上面两个数值之和。