数组
1.查找:O(n),如果是有序链表搭配二分查找可以O(log n)
- 说明:如果是无序数组就需要搜索数组中的所有元素。如果是有序数组,搭配二分查找可以达到O(log n)
2.添加:O(n)
- 说明:在数组中添加一个元素,可能让后续元素都腾出空间
3.删除:O(n)
- 说明:在数组删除一个元素,可能让后续元素都填补空缺位置
4.修改:O(1)
- 说明:直接通过数组索引的方式修改元素
链表
1.查找:O(n)
- 说明:最坏的情况需要遍历所有的节点
2.添加:O(1),最坏O(n)
- 说明:如果已知要添加的节点为O(1)。如果要先查找该节点,时间复杂度为O(n)
3.删除:O(1),最坏O(n)
- 说明:如果已知要删除的节点为O(1)。如果要先查找该节点,时间复杂度为O(n)
4.修改:O(n)
- 说明:通常需要查找修改的节点,所以时间复杂度为O(n)