向量(vector)
阿新 • • 發佈:2018-07-04
數組 抽象數據類型 實現 find 組元 pan 結構 遞增 線性
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.有序向量
向量(vector)