顺序列表
顺序表的定义
线性表的顺序储存又叫做顺序表,一组地址连续的储存单元一次储存线形表中的数据元素。
重要的几个组成元素:
- 数据的尺寸 sizeof(elementType)
- 数组的总长度,当前长度
- 起始位置地址。
一维的数组的分配:
- 静态分配: 固定的数组,大小和空间事先已经固定了,静态区内exe区域内;当空间被占满假如新的数据的时候就会溢出。程序崩溃;
- 动态分配,程序执行过程中动态分配空间,如果空间满了就分配一个更大的空间,开辟了一块更大的储存空间;
特点:
- 随机访问性: add + idx*SizeofElement ,通过首地址和序号可以在O1时间内找到指定元素
- 储存密度高,每个节点的只储存数据元素
- 逻辑相邻的元素物理上也相邻,所以插入和删除操作需要移动大量元素。
基本操作
-
插入操作:
当插入第i个元素的时候,如果输入不合法则返回false,插入失败,否则顺序表的第i个元素后面元素都右移 -
最好情况: 在队尾添加一个元素,时间O1
-
最坏情况:在队首天见一个元素,时间On
-
平均情况:中间添加的一个元素时间 n/2 平均复杂度On
-
删除操作:
队伍尾巴最好情况O1
最坏情况:表头元素 On
平均 (n-1)/2 On -
按值查找
最好:元素就在表头 O1
最坏: 元素在表尾 On
平均 (n+1)/2. On.
一些习题