### 顺序表删除元素
- 删除尾部元素 O(1)
- 非保序的元素插入 O(1)
- 保序的元素插入 O(N)
> 元素的删除与增加从尾部删除或添加比从头部或中间删除或添加要简单许多。时间复杂度低。
### Python中的顺序表
Python和中的list和tuple就是采用了顺序表的实现技术。
### list的基本实现技术
主要特征:
- 基于下标位置的高效元素访问和更新,复杂度为O(1)
- 允许任意加入元素,且在不断加入元素过程中,表对象的标识(id)不变。为满足该特征,就必须能更换元素存储区,并且为保证更换存储区时list对象的标识id不变,只能采用分离式实现技术
> list就是一种采用分离式技术实现的动态顺序表。这就是为什么append比在指定位置插入元素效率高的原因。
> 支持扩充的顺序表称为动态顺序表。
在python的官方实现中,list采用了如下的策略:在建立空表时,系统分配一块能容纳八个元素的存储区;在执行插入操作时,如果元素存储区满就换一块四倍大的存储区。但如果此时的表已经很大,则改变策略,采用加一倍的方法。引入这种改变策略的方式,是为了避免出现过多空闲的存储位置。