复习
- 数组的定义格式 - 3种
- 在数组中通过下标来确定元素的位置,可以通过length属性来获取数组的长度
- 数组的内存结构:在栈中,存储的是数组的地址;在堆内存中才是真正存储的数组的元素
- 数组排序:冒泡、选择 - 时间复杂度是O(n2),空间复杂度是O(1)
- 元素的查找:无序 - 遍历,有序 - 二分
二维数组
- 数组是用于存储数据的容器 - 此时可以将数组看作是一个盒子,此时这个盒子的每一个位置上只能存放一个元素,所以之前学习的数组称之为是一维数组 - 可以考虑将一维数组这个小盒子放到一个更大的盒子中,此时这个更大的盒子就是二维数组
- 定义格式
格式一: 数据类型[][] 数组名 = new 数据类型[二维数组的大小][包含的一维数组的大小]; int[][] arr = new int[3][5]; // 定义了一个二维数组arr,包含3个一维数组,每一个一维数组中可以存储5个整数 |
格式二: 数据类型[][] 数组名 = new 数据类型[二维数组的大小][]; int[][] arr = new int[4][]; // 定义了一个二维数组arr,包含了4个一维数组 arr[0] = new int[5]; arr[1] = new int[3]; |
格式三: 数据类型[][] 数组名 = {{数组1}, {数组2}, ...}; int[][] arr = {{1,5,7,4,6}, {4,2,1,6}, {5,6,4,9,4,2}}; |
- 在二维数组中,通过数组名[下标]的形式获取出来的是一维数组;通过数组名[下标][下标]的形式获取出来的是具体的元素
二、二维数组的内存结构
三、案例
杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
输入一个数字n表示行数,输出对应的前n行的杨辉三角