算法与数据结构
1. 线性表 line-list
1.1 顺序表
1.1.1. 实现代码
1 | /** |
1.1.2 效率分析
插入操作:
- 最好情况 从position = size , 最坏情况 position = 0
- 设元素个数为$n$ 插入元素的位置有n+1种情况,当插入的位置等概率时, 有$p_i = \frac{1}{n+1}$.
- 则需要移动元素的平均次数为 $\sum^{n}{i=0}p_i(n-i)=\frac{1}{n+1}\sum^n{i=0}(n-i)=\frac{n}{2}$
删除操作:
- 最好情况 从position = size - 1 , 最坏情况 position = 0
- 设元素个数为$n$ 删除元素的位置有n种情况,当删除的位置等概率时, 有$p_i = \frac{1}{n}$.
- 则需要移动元素的平均次数为 $\sum^{n}{i=0}p_i(n-i)=\frac{1}{n}\sum^n{i=0}(n-i)=\frac{n-1}{2}$
综上, 无论删除或添加元素时间复杂度都为 $O(n)$
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.