攤餘成本複雜度
攤餘分析
在偶爾的操作非常慢,但大多數執行非常頻繁的操作更快時,會使用此分析。在資料結構中,我們需要散列表、不相交集等攤餘分析。
在散列表中,搜尋時間複雜度大多數時候是 O(1),但有時它執行 O(n) 操作。當我們希望在散列表中搜索或插入元素時,在大多數情況下需要花固定時間完成任務,但當發生衝突時,它需要執行 O(n) 次操作才能解決衝突。
聚集方法
聚集方法用於找到總成本。如果我們要新增很多資料,那麼我們需要透過此公式找到攤餘成本。
對於 n 個操作的序列,成本為 -
攤餘分析示例
對於動態陣列,可以在給定的索引處以 O(1) 的時間插入項。但是,如果陣列中不存在該索引,則無法以固定時間執行任務。對於這種情況,它最初將陣列大小加倍,然後在索引存在的情況下插入元素。
對於動態陣列,令 𝑐𝑖 = 第 𝑖 次插入的代價。
廣告