当前位置:   article > 正文

数组的时间复杂度

数组的时间复杂度

目录

一、数组查询的时间复杂度O(1)

二、数组的删除和插入时间复杂度O(N)


一、数组查询的时间复杂度O(1)

1、数组的查询复杂度为O(1)是常数集,1代表的是一个常量(比如吃个水果要一分钟,两个水果要两分钟,这里的一分钟和两分钟是一样的,指的是一个大概)

2、数组查找公式 a[n]=起始地址+(n*字节数),数组都是按照一个固定的基本类型去查找的,所以查询比较快。

举例集合起始位置为100,则索引为2的元素则位置为108(int类型的集合,int类型字节为4)。

int[] a = {18,36,34,20};
a[n]元素索引
112=100+(3*4)203
108=100+(2*4)342
104=100+(1*4)361
100(*1)180

二、数组的删除和插入时间复杂度O(N)

1:数组的删除和插入的时间复杂度是O(N)是需要很多次不能像常数集一样统计出来

abcde
01234
abcXde
01234
abcXde
012345

如上图数组中有5个元素a,b,c,d,e,索引为0,1,2,3,4。

插入:如果在索引2和索引3之间插入一个元素X,而数组要维护它的连续性会去掉老位置的索引3,把新增数据位置的索引为3,而为了继续维护它的连续性会把老位置3索引改为4,相当于从插入位置的后面的元素都需要挪动一个位置,这种时间复杂度为O(N),其中的N可以理解为数组的长度。

删除:删除元素的操作与插入相似,比如删除新插入的元素X,则X后面的数据整体往前移动一个位置,相对于的索引也会发生变化,它的时间复杂度为O(N)

以上,所以数组删除和插入比较慢。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号