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 分攤複雜度
平均複雜度:根據資料結構各種操作出現的機率分布,将對應的成本權重平均
分攤談複雜度:對資料結構連續的實施足夠多次操作,所需總體成本分攤至單次操作