1.数组
-
定义:
是多个相同类型得数据按一定顺序排列得集合,并使用一个名字命名,并通过编号得方式对这些数据进行统一管理
-
常见概念:
- 数组名
- 角标、下标(或索引)
- 元素
- 数组得长度(元素得个数)
-
特点:
数组是有序排列得
-
说明:
- 数组本身是引用数据类型,而数组中得元素可以是任意数据类型,包括基本数据类型和引用数据类型
- 创建数组对象会在内存中开辟一整块连续得空间,而数组中引用得是这块连续空间得首地址
- 数组得长度一旦确定。就不能修改
- 可以直接通过下标(或索引)得方式调用指定位置得元素,速度很快
-
分类:
- 按照维度:一维数组、二维数组、三维数组
- 按照元素得数据类型分:基本数据类型元素得数组、引用数据类型元素得数组(即对象数组)
1.1 一维数组
- 使用:
- 一维数组得声明和初始化
- 如何调用数组指定位置得元素
- 如何获取数组得元素
- 如何遍历数组
- 数组元素得默认初始化值
- 数组得内存解析
1.2 多维数组
-
理解:
对于二维数组得理解,可以看成是是一个一维数组array又作为另一个数组array1得元素而存在。其实,从数组底层的运行机制来看,其实没有多维数组(只不过一维数组里面得元素还是一个一维数组,所以称之为二维数组)
-
使用:
- 二维数组得声明和初始化
- 如何调用数组指定位置得元素
- 如何获取数组得元素
- 如何遍历数组
- 数组元素得默认初始化值
- 数组得内存解析
2.1 数组中涉及到的常见的算法
-
数组元素的赋值(杨辉三角、回形数等)
-
求数值型数组中元素的最大值、最小值、平均数、总和等
-
数组的复制、反转、查找(线性查找、二分查找等)
-
数组元素的排序算法(面试题重点)
2.2 数组元素的排序算法 -
分类:内部排序和外部排序
内部排序:整个排序的过程不需要借助外部存储器(如磁盘等),所有排序操作都在内存中完成。
外部排序: 参与排序的数据非常多,数据量非常大,计算机无法把真个排序过程放在内存中完成,必须借助于外部存储器(如磁盘)。外部排序最常见的就是多路归并排序。可以认为外部排序是由多次内部排序组成。
十大内部排序算法:
- 选择排序:直接选择排序、堆排序(思想)
- 交换排序:冒泡排序、快速排序(会手写)
- 插入排序:直接插入排序、折半插入排序、Shell排序
- 归并排序(思想)
- 桶式排序
- 基数排序