数据结构与算法3-数组

数组

1.随机访问

数组Aaary是一种线性表数据结构,用一组连续的内存空间,来存储一组具有相同类型的数据。

因为其连续的内存空间和相同类型的数据,
使得数组可以随机访问( O(1)时间复杂度 )但是想在数组中删除、插入一个数据,为了保持连续性,就需要做大量的数据搬移工作( 平均情况时间复杂度为O(n) )。

数组使用下面的公式通过下标随机访问数组元素。

a[i]_address = base_address + i * data_type_size

若数组中存储的是int类型数据,则data_type_size = 4字节

图示
在这里插入图片描述
数组与链表的区别:
数组根据下标随机访问的确时间复杂度为O(1),但是真正去查找数组元素时却并不是O(1),即使是排好序的数组使用二分查找,时间复杂度也是O(logn)

2.插入、删除在这里插入图片描述

在这里插入图片描述

3.数组访问越界问题

在这里插入图片描述

4.容器能否完全替代数组?

在这里插入图片描述
在这里插入图片描述

5.为什么大多数编程语言中数组从0开始编号,而不是从1开始?

在这里插入图片描述

6.扩展

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了10 篇原创文章 · 获赞 4 · 访问量 268

猜你喜欢

转载自blog.csdn.net/qq_22795223/article/details/104235297