数组
在一段连续的内存空间中,存放一组相同类型的元素
有两个易混的点
- 元素 和 索引
a[1,2,3] --> 里面的数就是元素
0 1 2 --> 索引(下标)
-
数组访问 和 数组搜索
数组访问:通过索引去访问元素
数组搜索:通过遍历找数组中的某个元素
因此可以得出数组访问的时间复杂度为O(1),数组搜索的时间复杂度为O(N)
现在来设想一下,内存空间足够的前提下,我们要在数组某个位置插入一个元素,那么插入位置的元素以及之后的元素全部都需要往后移一位
而最坏情况就是在第一个位置插入一个元素,因此我们可以知道数组插入的时间复杂度为O(N)
相反的,我们要删除数组中某一位置的元素,那么被删除元素之后的元素全部都要往前移一位,同样我们可以知道数组删除的时间复杂度也为O(N)
总结:数组是一种适合读,不适合写的数据结构
后续更新…