1.接口与实现
1.1
抽象数据类型:一组数据模型上定义的一组操作 数据类型是(char、int等)
数据结构:基于特定语言的,实现ADT的一整套算法。
1.2
向量:向量是数组的抽象与泛化,由一组元素按线性次序封装而成。
特点:1.各元素与(0,n)内的秩一一对以应
2.元素的类型不限于基本类型
3.操作、管理更加简洁、统一与安全
4.可更为便捷的参与复杂数据结构的定制与实现
1.3
向量的操作
insert(0,9):在0的位置插入9
put(1,2)修改1位置上的元素为2
get(2)获取2上的元素
remove(2)移除位置2上的元素并返回
size()向量里面元素的个数
disordered()判断向量里面无序的数据对
find(5)找有没有5的元素 找到返回其下标 未找到则返回-1
sort()对里面的元素进行排序
search(9)查找向量里面是否有9找到则返回下标,未找到则返回不超过9的最大的那个元素的下表(顺序的向量)
uniquify()剔除掉向量里面重复的元素
2.可扩充向量
2.1 静态空间管理
开辟内部数组_elem[]并使用一段连续的物理空间
缺点:
会产生上溢合下溢
2.2 动态空间管理
在即将发生上溢时适当的扩大数组的容量
2.3 扩容的策咯
容量递增策略(2 4 6 8 10 12)累计增容费时间(O(n2)) 分摊增容时间(O(n))
加倍试策略(2 4 8 16)累计增容费时间(O(n)) 分摊增容时间(O(1))
2.4 分摊复杂度
平均复杂度:根据数据结构各种操作出现的概率分布,将对应的成本加权平均
分摊谈复杂度:对数据结构连续的实施足够多次操作,所需总体成本分摊至单次操作
3.无序向量
4.有序向量
原文地址:https://www.cnblogs.com/zhangfuxiao/p/9261578.html