日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

算法导论笔记:17摊还分析

發布時間:2025/4/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法导论笔记:17摊还分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ?在攤還分析中,通過求數據結構的一系列的操作的平均時間,來評價操作的代價。這樣,即使這些操作中的某個單一操作的代價很高,也可以證明平均代價很低。攤還分析不涉及概率,它可以保證最壞情況下每個操作的平均性能。

?

?????? 攤還分析有三種常用的技術:

? ? ???聚合分析,它確定n個操作的總代價的上界為T(n),所以每個操作的平均代價為T(n)/n。每個操作都有相同的攤還代價。

? ? ???核算法:分析每個操作的攤還代價,不同于聚合分析,每種操作的攤還代價是不同的,核算法將序列中較早的操作的余額作為“信用”儲存起來,與數據結構中的特定對象相關聯,在隨后的操作中,儲存的信用可以用來進行支付。

? ? ???勢能法,與核算法類似,也是分析每個操作的代價,但將勢能作為一個整體存儲,而與數據結構中的某個對象無關。

一:聚合分析

?????? 聚合分析是證明n個操作的最壞情況下的總時間為T(n),因而每個操作的平均代價(聚合代價)為T(n)/n。所以,聚合分析中的每個操作的聚合代價都是相同的。下面以棧操作和二進制計數器為例說明:

??????

?????? 1:棧操作

?????? 棧操作有PUSHPOP,兩個操作的都是O(1)時間的。現在增加一種新的操作MULITIPOP(S, k),該操作刪除棧頂的k個元素,如果k > S.size,則刪除所有元素。該操作與實際執行的POP次數呈線性關系,代碼如下:

MULTIPOP(S, k)

?????? while not STACK-EMPTY(S) and k>0

????????????? POP(S)

????????????? k = k-1

?

因此,MULTIPOP的代價為min(s, k),其中s表示S.size。

?

?????? 因為棧的大小最大為n,所以MULTIPOP的最壞情況為O(n),所以,由n個PUSH,POP,MULTIPOP組成的操作序列的最壞代價為O( n^2),因為序列可能包含O(n)個操作序列。

?

?????? 上面的分析給出的界并不是緊確界,實際上,在一個空棧上執行nPUSH, POP, MULTIPOP的操作序列,代價最多為O(n)這是因為,當一個對象壓入棧后,至多將其彈出一次。所以,對于一個非空的棧,可以執行的POP的次數(包含MULTIPOP中的POP)最多與PUSH操作次數一樣,即n次。所以,對任意的n,任意一個由n個PUSH, POP, MULTIPOP組成的操作序列,最多花費O(n)。所以,每個操作的攤還代價為O(1)。

?

2:二進制計數器遞增

?????? 用一個數組A[0..k-1]表示一個k位二進制數x,x的最低位存儲在A[0]中,最高位在A[k-1]中,初始情況下x=0。遞增代碼如下:

INCREMENT(A)

?????? i=0

?????? while i < A.length and A[i] == 1

????????????? A[i] = 0

????????????? i = i+1

?????? if i< A.length

????????????? A[i]= 1

?

?????? 每次INCREMENT操作的代價,與翻轉的二進制位的數目呈線性關系。下圖顯示了將一個二進制數遞增16次的情況,初始值為0,最終變為16:

?

?????? 最壞情況下,INCREMENT執行一次需要花費Θ(k)時間,因此,初始值為0的計數器執行n個INCREMENT操作的最壞情況花費為O(nk)時間。

?

?????? 所以,對于一個初始值為0的計數器,執行n個INCREMENT操作序列最壞情況下時間為O(n),所以,每個操作的攤還代價為O(1)。

?

二:核算法

?????? 核算法,對不同的操作賦予不同的費用,這個費用就是攤還代價。當一個操作的攤還代價超過實際代價的時候,將差額存入數據結構中的特定對象,存入的差額稱為信用。對于后續操作中,攤還代價小于實際代價的情況,信用可以用來支付差額。

?????? 因為希望通過分析攤還代價來說明每個操作的平均代價的很小,所以應該確保n個操作序列的攤還代價是實際代價的上界。如果 表示第i個操作的真實代價,而 表示攤還代價,則對于任意的n,有: ? 。因為信用就是攤還代價和實際代價的差值,即 ? ,所以需要保持數據結構中的總信用永遠為非負值。

?

1:棧操作

?????? 棧操作的實際代價如下:PUSH?? 1;??? POP?????? 1;??? MULTIPOP??? min(k,s)。為這些操作賦予的攤還代價為:????? PUSH?? 2;??? POP?????? 0; MULTIPOP??? 0。

?

?????? 下面證明,如果按照攤還代價進行繳費,則可以支付任意的n個棧操作序列。PUSH操作時,共繳費2美元,其中1美元支付PUSH的實際代價,將剩余的1美元存入插入的元素,作為信用。這樣,每個插入的元素都具有1美元的信用。1美元的信用,實際上是用來支付POP操作的預付費。當執行一個POP的時候,并不繳額外的費用,而是使用信用來支付實際代價。MULTIPOP也一樣。所以,對任意的n個PUSH, POP, MULTIPOP組成的序列,總攤還代價為實際代價的上界,總攤還代價為O(n)。

?

2:二進制計數器遞增

?????? INCREMENT的操作時間與實際翻轉的位數成正比,所以可以用翻轉的位數作為操作的實際代價。

?????? 在攤還分析中,對一次置位操作(0->1),繳費2美元,用1美元支付置位操作的實際代價,另存1美元在該位,作為信用,用來支付將來的復位操作(1->0)。所以,任何時刻,計數器中任何為1的位都存有1美元的信用。對于復位操作,無須繳納任何費用。

?????? 所以,每個INCREMENT操作最多置位一次,因此攤還代價為2美元。所以,n個INCREMENT操作,總攤還代價為O(n)。

?

三:勢能法

?????? 勢能法與核算法類似,但是勢能法并不將預付代價表示為數據結構中特定對象的信用,而是表示為“勢能”。勢能是與整個數據結構相關聯,而不是某個特定的對象。將勢能釋放,就可以支付未來操作的代價。

?

?????? 勢能法如下:對一個初始數據結構 執行n個操作。對于i = 1, 2,...,n, 表示第i個操作的實際代價, 表示在數據結構 上執行第i個操作得到的數據結構。勢函數 將每個數據結構 映射到一個實數 ,這個值就是關聯到數據結構 的勢。所以,i個操作的攤還代價為每個操作的攤還代價等于其實際代價加上此操作引起的勢能變化。



?

?

轉載于:https://www.cnblogs.com/gqtcgq/p/7247227.html

總結

以上是生活随笔為你收集整理的算法导论笔记:17摊还分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 51av视频| 欧美福利片在线观看 | 国产九九九九 | 曰本无码人妻丰满熟妇啪啪 | 特黄视频免费看 | 黄色av免费 | 国产乱码一区 | 日日干日日操 | 日本va欧美va精品发布 | 欧美一级黄色录像 | 吃奶摸下的激烈视频 | 男女啪啪免费网站 | 亚洲国产一区二区三区四区 | 国产尤物视频在线观看 | 国产精品100| 欧美精品一区二区三区久久 | 青青视频一区二区 | 国产色无码精品视频 | 在线欧美视频 | 国产视频久久久久 | 性色av一区 | 欧美老女人bb | 欧美日韩三区 | 欧美日韩成人在线观看 | 日韩精品人妻中文字幕有码 | 欧美aa在线观看 | 黄色一级片在线播放 | 6996电视影片免费看 | 欧美黑人多人双交 | 手机在线视频一区 | 五月综合激情日本mⅴ | 天天操你| 色婷婷亚洲综合 | 午夜国产福利在线观看 | 影音先锋成人在线 | 夜夜嗨一区二区三区 | www.色视频| 91刺激视频 | 国产婷婷一区二区 | 久久96视频 | 国产精品27p | 日本一区欧美 | 超碰免费在 | 少妇人妻互换不带套 | 夜夜伊人 | heyzo亚洲| 欧美偷拍一区二区三区 | 精品国精品国产自在久不卡 | 中文字幕精品视频 | 草久视频在线观看 | 亚洲黄色片免费看 | 日本少妇高潮喷水xxxxxxx | jlzzjizz在线播放观看 | 肉肉视频在线观看 | 欧美视频一区二区在线观看 | 上海毛片 | 女教师痴汉调教hd中字 | 亚洲国产精品视频在线观看 | 成人精品国产免费网站 | 免费看成人aa片无码视频羞羞网 | 懂色av蜜臀av粉嫩av分享 | 美国伊人网| 爆操白虎| 欧美激情视频一区二区三区 | 九九精品在线观看视频 | 国产农村妇女精品久久久 | 欧美人喂奶吃大乳 | 亚欧美精品 | 国产美女一区 | 欧美日韩一区二区在线播放 | 少妇的激情 | 国产欧美啪啪 | 国产一级免费大片 | 国产精品久久久久三级无码 | 老汉av | 国产成人a∨ | 欧美大黄| 污污视频在线播放 | 国产免费一区二区三区三州老师 | 成人欧美在线观看 | 欧洲精品一区二区三区久久 | 在线免费观看av片 | a天堂在线观看 | 国产一二三区精品 | 国内精品免费 | 夜夜躁狠狠躁 | 丁香在线 | 国产成人精品一区二区三区视频 | 国产精品色在线 | 精品影视| 最新中文字幕在线观看视频 | 激情综合啪啪 | 国产又爽又黄又嫩又猛又粗 | 爱爱视频在线看 | 污的网站 | 亚洲永久免费av | 天堂网在线资源 | 福利视频免费 | 福利国产视频 |