数组的优缺点
(参考拉勾教育的300分钟搞定数据结构与算法)
优点:
1、构建简单;
2、能在O(1)时间里根据数组的下标(index)查询某个元素。
缺点:
1、构建时必须分配一段连续的空间;
2、查询某个元素是否存在时需要遍历整个数组,耗费O(n)的时间(其中n为元素的个数);
3、删除或添加某个元素时,同样也要花费O(n)的时间。
链表的优缺点
优点:
1、可以灵活分配内存空间;
2、能在O(1)时间内删除或添加元素,前提是该元素的前一个元素已知。也与是单链表还是双链表有关,双链表如果已知该元素的后一个元素时间就为O(1)。
缺点:
1、不能像数组一样通过下标获取元素,每次要从链表头开始一个一个读取;
2、查询第k个元素需要O(k)时间。
注意:索引某个元素和查询某个元素是否存在的区别。