0
点赞
收藏
分享

微信扫一扫

【数据结构】数组

西曲风 2022-04-29 阅读 53

        看到数组,马上想到!

        空间连续,类型相同

        顾名思义,数组的特点就是空间连续,并且你类型不同也不能让你成为一个数组啊对吧。


        数组与链表的区别:

  1. 链表是链式存储,数组是顺序存储。
  2. 链表通过指针连接元素与元素,而数组则是把所有元素按顺序进行存储。
  3. 链表插入删除简单,容易实现长度扩充,但是查询元素比较困难;数组查询快,但是删除增加会比较麻烦。

        这里着重说一下数组增删改查的效率问题:

  • 暂且认为,一切数组和链表的增删改查效率均为O(n)。
  • 无序数组的添加:O(1)。
  • 有序数组的查找:O(logn),二分。
  • 无序链表的添加:O(1)。
  • 最后认为,剩余的情况,都是O(n)。

        为什么数组删除还是O(n)呢?

        要这样想,你不一定是一定删除最后一个吧?如果不是,就要考虑到其余元素向前移位的情况,那么就是O(n)了。

        同理增加,你申请的空间已经固定了,那么你要增加的话,就得来一个更大的空间,来替换,所以还是复杂的。

        数组按照索引查找,是O(1),但是按照内容,就变成了O(n)。所以说,根据数组下标,可以随机访问当前数组内的内容。


        结论就是:数组针对下标索引搜索,效率就是O(1),如果是根据内容搜索,就是O(n)。

        数组是线性结构,但也是重要的顺序结构。

举报

相关推荐

0 条评论