数组
- 定义
数组(Array):是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型的数据。
关键定义点:
1.线性表
线性表,从字面上理解就是数据排成一条线一样的结构,每条线上的数据最多只有向前和向后两个方向。
数组、链表、队列、栈都是线性表结构。
如图所示
非线性表结构:二叉树、堆、图等,非线性表中,数据之间不是简单对前后关系(交叉、父子等)。
2.连续内存空间&&相同类型数据
计算机会为数组开辟一个连续的内存空间,这个连续性保证了如果随机访问数据中的元素,它的时间复杂度为O(1),也就是查找的数据很快,但是有利有弊。
如果delete、add数组中的元素,为了保持其连续性,那么就需要进行大量的数据搬移,这样就导致它的效率很低。
- 数组的访问
假设定义这样一个数组int[] a = new int[10],计算机会为这个数组分配一个连续的内存空间(内存地址为1000 ~ 1039),内存块的首地址为1000
说明,int类型存储范围为4个字节,所以10个元素内存空间 4 * 10 = 40