1.数组
传值 : 指的是 基本数据类型的传递
传引用 : 指的是 引用类型的传递,引用类型保存地址,只能传递地址
2.数组复制
(1)替换式复制
(2)插入式复制
3.二维数组
二维数组使用
静态 :
int[][] arr = {
{1,2,3},
{2,5},....
}
动态 :
int[][] arr = new int[5][3]; 二维数组中有5个一维数组,并且每个一维数组中都有3个元素
int[][] arr = new int[5][]; 二维数组中有5个一维数组,但是每个一维数组都是空的,需要单独对每一个一维数组赋值
4.二维数组的存储
5.使用
6.scanner
7交换变量的值
8.排序
(1)冒泡排序法
(2)选择排序法
(3)排序API
9.二分法查找
public static int binarySearch(int[] arr, int target) {
// 1 确定起始索引,结束索引,中间索引
int startIndex = 0;
int endIndex = arr.length;
int m = (startIndex + endIndex) / 2;
// 2 使用目标数据和中间数据进行比较
// 终止条件 : 不存在该数据,当起始值大于中间数据时,说明不存在,可以相等,相等说明还有一个数据没有比较
while (startIndex <= endIndex) {
// 3 第一种 : 中间值就是目标数据,直接返回中间索引 m 即可
if (arr[m] == target) {
return m;
}
// 4 第二种 : 中间值小于目标数据,结束值不变,起始值=中间值+1
if (arr[m]<target) {
startIndex=m+1;
}
// 5 第三种 : 中间值大于目标数据,起始值不变,结束值=中间值-1
if (arr[m]>target) {
endIndex=m-1;
}
// 重新生成中间值
m = (startIndex + endIndex) / 2;
}
// 能执行到这里
// 说明不存在该数据,当起始值大于中间数据时,说明不存在,可以相等,相等说明还有一个数据没有比较
return -1;
}