計算機(jī)算法設(shè)計與分析(第6版)-課件 ch0702舍伍德算法_第1頁
計算機(jī)算法設(shè)計與分析(第6版)-課件 ch0702舍伍德算法_第2頁
計算機(jī)算法設(shè)計與分析(第6版)-課件 ch0702舍伍德算法_第3頁
計算機(jī)算法設(shè)計與分析(第6版)-課件 ch0702舍伍德算法_第4頁
計算機(jī)算法設(shè)計與分析(第6版)-課件 ch0702舍伍德算法_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

舍伍德算法01舍伍德算法基本思想確定性算法的性能陷阱傳統(tǒng)確定性算法在分析平均性能時,常假設(shè)輸入數(shù)據(jù)服從特定分布。然而,一旦輸入偏離假設(shè),如快速排序在幾乎有序數(shù)據(jù)下,性能會急劇退化至O(n2),這凸顯了算法對輸入分布的敏感性。01這種“輸入依賴”特性是算法在實(shí)際應(yīng)用中面臨的核心痛點(diǎn)。算法的性能不應(yīng)僅依賴于輸入數(shù)據(jù)的分布,而應(yīng)具備對各種輸入的魯棒性,這為舍伍德算法的引入提供了必要背景。

02痛點(diǎn)與需求傳統(tǒng)假設(shè)的局限舍伍德算法核心思想舍伍德算法通過引入隨機(jī)化,切斷算法運(yùn)行時間與特定輸入實(shí)例的強(qiáng)耦合關(guān)系。無論輸入如何,算法的期望時間保持一致,從而實(shí)現(xiàn)性能的穩(wěn)定。切斷強(qiáng)耦合該算法保留了原確定性算法的基本框架,僅在關(guān)鍵點(diǎn)引入概率選擇。這種設(shè)計既保留了原算法的優(yōu)勢,又通過隨機(jī)化消除了最壞情況的影響。保留框架概率影響最壞情況不再由輸入數(shù)據(jù)觸發(fā),而是由算法自身的隨機(jī)選擇導(dǎo)致。這種概率事件的發(fā)生概率極低,因此算法在大多數(shù)情況下都能保持良好的性能。02線性時間選擇新思路選擇問題背景與基準(zhǔn)困局選擇問題選擇問題的目標(biāo)是從無序數(shù)組中找出第k小的元素。確定性算法在處理該問題時,若固定首元素為基準(zhǔn),平均性能雖好,但在最壞情況下時間復(fù)雜度會退化至O(n2)。基準(zhǔn)選擇的挑戰(zhàn)若采用擬中位數(shù)作為基準(zhǔn),雖然能保證線性時間復(fù)雜度,但實(shí)現(xiàn)復(fù)雜且常數(shù)項(xiàng)較大?;鶞?zhǔn)的選擇成為影響算法性能的關(guān)鍵因素,需要一種更好的解決方案。隨機(jī)基準(zhǔn)消除最壞輸入隨機(jī)基準(zhǔn)舍伍德型選擇算法通過隨機(jī)選擇基準(zhǔn),使每個元素都有相等的概率成為基準(zhǔn)。這種隨機(jī)化策略徹底消除了惡意構(gòu)造的有序輸入對算法性能的影響。劃分效果隨機(jī)劃分后,子數(shù)組的規(guī)模期望呈幾何級下降,從而保證了整體的期望比較次數(shù)仍為線性。隨機(jī)基準(zhǔn)的選擇為算法帶來了更好的性能穩(wěn)定性。概率優(yōu)勢隨機(jī)選擇基準(zhǔn)的概率特性使得最壞情況不再出現(xiàn),算法的性能在期望意義上得到了顯著提升,為線性時間選擇問題提供了一種高效的解決方案。010203非遞歸實(shí)現(xiàn)舍伍德型選擇算法采用非遞歸實(shí)現(xiàn),通過循環(huán)維護(hù)當(dāng)前區(qū)間和剩余名次。隨機(jī)選取基準(zhǔn)后進(jìn)行三向劃分,再根據(jù)基準(zhǔn)位置調(diào)整區(qū)間范圍,整個過程僅依賴一個隨機(jī)數(shù)生成器,無需額外??臻g,實(shí)現(xiàn)簡單且高效。非遞歸實(shí)現(xiàn)與概率劃分期望線性復(fù)雜度證明設(shè)T(n)為規(guī)模n的期望時間上界,利用隨機(jī)劃分后左子數(shù)組長度的概率特性,建立遞推式。通過放大求和項(xiàng)并提取線性項(xiàng),結(jié)合歸納假設(shè),最終證明T(n)=O(n)。遞推式建立隨機(jī)化策略將最壞情況的成本均攤到所有可能輸入上,從而在期望意義上實(shí)現(xiàn)了線性時間復(fù)雜度。這一證明為舍伍德型選擇算法的性能承諾提供了嚴(yán)謹(jǐn)?shù)睦碚撝С?。?fù)雜度承諾03輸入洗牌與通用性隨機(jī)預(yù)處理等價性01隨機(jī)預(yù)處理當(dāng)原算法無法內(nèi)嵌隨機(jī)選擇時,可先對輸入執(zhí)行隨機(jī)洗牌,再運(yùn)行確定性算法。這種隨機(jī)預(yù)處理方式在期望意義上與舍伍德算法等價,為遺留算法提供了零侵入式升級路徑。02等價性優(yōu)勢隨機(jī)洗牌通過簡單的隨機(jī)交換操作,使輸入數(shù)據(jù)的排列完全隨機(jī)化,從而在不修改原算法的前提下,實(shí)現(xiàn)了與舍伍德算法相似的性能提升。洗牌算法實(shí)現(xiàn)與復(fù)雜度Fisher-Yates洗牌經(jīng)典的Fisher-Yates洗牌算法在O(n)時間與O(1)額外空間內(nèi)完成均勻隨機(jī)排列。從尾至頭依次將當(dāng)前元素與前方隨機(jī)位置交換,保證每個排列的概率為1/n!。實(shí)現(xiàn)細(xì)節(jié)洗牌算法通過控制隨機(jī)數(shù)的范圍,確保每次交換操作的隨機(jī)性。這種簡單的隨機(jī)交換操作為后續(xù)算法的運(yùn)行提供了均勻隨機(jī)的輸入,從而提高了算法的整體性能。預(yù)處理成本隨機(jī)洗牌的預(yù)處理成本遠(yuǎn)低于后續(xù)算法本身的運(yùn)行時間,因此在工程實(shí)踐中,這種零侵入式的升級方式成為了一種常用的舍伍德算法替代方案。04有序表隨機(jī)搜索加速有序鏈表順序搜索瓶頸有序鏈表結(jié)構(gòu)用數(shù)組加link域模擬有序鏈表,支持動態(tài)集操作。這種結(jié)構(gòu)雖然簡單,但在順序搜索時需要O(n)次比較,難以應(yīng)對大規(guī)模查詢需求。瓶頸分析傳統(tǒng)有序鏈表的順序搜索方式存在明顯的瓶頸,即無法快速跳過無關(guān)元素,導(dǎo)致搜索效率低下。這一問題為引入隨機(jī)采樣預(yù)熱提供了必要性。隨機(jī)采樣策略搜索前隨機(jī)采樣m=?√n?個節(jié)點(diǎn),記錄不大于目標(biāo)x的最大前驅(qū)。這種隨機(jī)采樣策略利用了數(shù)組下標(biāo)可O(1)訪問的特性,兼顧了實(shí)現(xiàn)的簡單性與理論加速效果。加速效果從采樣得到的前驅(qū)位置開始順序后跳,可將期望比較次數(shù)降至O(n/(m+1))=O(√n)。這種隨機(jī)預(yù)熱方式顯著提高了搜索效率,為大規(guī)模查詢提供了支持。權(quán)衡邏輯采樣數(shù)目取根號的權(quán)衡邏輯在于平衡隨機(jī)采樣的成本與后續(xù)順序搜索的效率。這種平衡使得算法在整體上實(shí)現(xiàn)了較好的性能優(yōu)化。隨機(jī)預(yù)熱縮小掃描范圍類封裝OrderedList封裝了value、link雙數(shù)組與隨機(jī)數(shù)生成器,提供Search、Insert、Delete、SearchLast等完整字典操作。所有接口的平均時間復(fù)雜度均為O(√n),為動態(tài)集操作提供了一種高效的解決方案。類OrderedList接口搜索平均復(fù)雜度Insert實(shí)現(xiàn)Insert先調(diào)用Search確認(rèn)元素不存在,再在數(shù)組尾部追加元素并修正指針。整體耗時由Search主導(dǎo),實(shí)現(xiàn)了在O(√n)時間內(nèi)的插入操作。Search通過隨機(jī)預(yù)熱定位前驅(qū),再順序比對link鏈。其平均比較次數(shù)已分析為O(√n),這種實(shí)現(xiàn)方式在保持簡單性的同時,實(shí)現(xiàn)了較好的搜索性能。Search實(shí)現(xiàn)刪除與最大元素查找010203Delete實(shí)現(xiàn)SearchLast實(shí)現(xiàn)普適性Delete先調(diào)用Search定位前驅(qū),通過link跳躍移除節(jié)點(diǎn),并用末尾元素填補(bǔ)空洞以保持?jǐn)?shù)組緊湊。這種實(shí)現(xiàn)方式在O(√n)時間內(nèi)完成了刪除操作。SearchLast采用與Search對稱的隨機(jī)預(yù)熱策略,在O(√n)期望時間內(nèi)找到當(dāng)前最大元素。這種對稱性體現(xiàn)了舍伍德思想在數(shù)據(jù)結(jié)構(gòu)維護(hù)中的普適性。舍伍德思想在有序表的搜索、插入、刪除等操作中均展現(xiàn)出良好的普適性,為動態(tài)集操作提供了一種高效且穩(wěn)定的解決方案。05小結(jié)舍伍德算法價值核心價值啟示與應(yīng)用舍伍德算法以極小的隨機(jī)成本,將“輸入敏感”的算法改造成“輸入無關(guān)”的算法,在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論