定义
数组(Array)是一种线性表数据结构。他用一组连续的内存空间,来存储一组具有相同数据类型的数据。
关键点
- 线性表(线性表结构的还有:链表、队列、栈;非线性表:二叉树、堆、图等)
- 连续的内存空间和相同类型的数据结构
一维数组寻址公式:a[i]_address = base_address + i * data_type_size
数组和链表的主要区别:链表适合插入、删除,时间复杂度为O(1);数组支持随机访问,根据下标随机访问的时间复杂度为O(1)。
附数组和链表的优缺点:
- 数组的优点:支持随机访问,查询速度快
- 数组的缺点:数组大小固定,不适合动态拓展;内存空间要求高,必须为连续的内存空间;插入和删除效率低;可能浪费内存
- 链表的优点:查询、删除速度快;链表大小可变,扩展性强;内存利用率高
- 链表的缺点:不支持随机查找,只能顺着智障的方向查找,查找效率低
数组和链表读取、查询和删除时间复杂度比较: