什么是数组
数组就是存放相同的类型,和固定长度的数组
数组分类
一维数组、二维数组
一维数组
动态初始化格式: 数据类型[] 数组名 = new 数据类型[长度];
静态初始化格式: 数据类型[] 数组名 = new 数据类型[]{值1,值二、、、};
数据类型[] 数组名 = {值1,值二、、、};
堆
堆里里面一般存放的是new出来的东西
栈
存放的是变量
遍历
什么是便利?
把每一个数据取出来
为什么要遍历?
方便今后
二维数组
什么是二维数组
二维数组其实就是这个二维数组中有多个一维数组,每个一维数组有多个元素
二维数组的格式
动态初始化
格式一
数据类型 [] [] 变量名 = new 数据类型 [m] [n];
格式二
数据类型【】【】 变量名 = new 数据类型【m】【】;
静态初始化
数据类型 [] [] 变量名 = new 数据类型 [] []{{},{}........};
数据类型 [] [] 变量名 = {{},{}........};
获取二维数组中的元素
数组名【二维数组中的一维数组的索引】【一维数组中的索引】 ;
经典案例
冒泡排序:相邻元素两两比较,大的往后排,第一次完毕,最大值出现在最大索引位置
选择排序:从0索引开始,依次和后面元素比较,小的放前面,第一次完毕,最小值出现在最小索引处
二分查询:前提:是一个有序的数组
理解:折半查找
分析:
-
1:定义最大索引,最小索引
-
2:计算出中间索引
-
3:拿中间索引的值和要查找的值进行比较
-
相等:就直返回当前的索引
-
不相等:
-
大了:左边找
-
小了:右边找
-
4:重新计算出中间的索引
-
大 左边找
-
max = mid - 1;
-
小 右边找
-
min = mid + 1;
-
5:回到2继续