


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、問題描述:有一個(gè)老板有一袋金塊。每個(gè)月將有兩名雇員會(huì)因其優(yōu)異的表現(xiàn)分別被獎(jiǎng)勵(lì)一個(gè)金塊。按規(guī)矩,排名第一的雇員將得到袋中最重的金塊,排名第二的雇員將得到袋中最輕的金塊。根據(jù)這種方式,除非有新的金塊加入袋中,否則第一名雇員所得到的金塊總是比第二名雇員所得到的金塊重。如果有新的金塊周期性的加入袋中,則每個(gè)月都必須找出最輕和最重的金塊。假設(shè)有一臺(tái)比較重量的儀器,我們希望用最少的比較次數(shù)找出最輕和最重的金塊算法思想:分而治之方法與軟件設(shè)計(jì)的模塊化方法非常相似。為了解決一個(gè)大的問題,可以: 1) 把它分成兩個(gè)或多個(gè)更小的問題; 2) 分別解決每個(gè)小問題; 3) 把各小問題的解答組合起來,即可得到原問題的解
2、答。小問題通常與原問題相似,可以遞歸地使用分而治之策略來解決。問題分析:一般思路:假設(shè)袋中有n 個(gè)金塊??梢杂煤瘮?shù)M a x(程序1 - 3 1)通過n-1次比較找到最重的金塊。找到最重的金塊后,可以從余下的n-1個(gè)金塊中用類似的方法通過n-2次比較找出最輕的金塊。這樣,比較的總次數(shù)為2n-3。分治法:當(dāng)n很小時(shí),比如說, n2,識(shí)別出最重和最輕的金塊,一次比較就足夠了。當(dāng)n 較大時(shí)(n2),第一步,把這袋金塊平分成兩個(gè)小袋A和B。第二步,分別找出在A和B中最重和最輕的金塊。設(shè)A中最重和最輕的金塊分別為HA 與LA,以此類推,B中最重和最輕的金塊分別為HB 和LB。第三步,通過比較HA 和HB
3、,可以找到所有金塊中最重的;通過比較LA 和LB,可以找到所有金塊中最輕的。在第二步中,若n2,則遞歸地應(yīng)用分而治之方法程序設(shè)計(jì)據(jù)上述步驟,可以得出程序1 4 - 1的非遞歸代碼。該程序用于尋找到數(shù)組w 0 : n - 1 中的最小數(shù)和最大數(shù),若n < 1,則程序返回f a l s e,否則返回t r u e。當(dāng)n1時(shí),程序1 4 - 1給M i n和M a x置初值以使w M i n 是最小的重量,w M a x 為最大的重量。首先處理n1的情況。若n>1且為奇數(shù),第一個(gè)重量w 0 將成為最小值和最大值的候選值,因此將有偶數(shù)個(gè)重量值w 1 : n - 1 參與f o r循環(huán)。當(dāng)n
4、 是偶數(shù)時(shí),首先將兩個(gè)重量值放在for 循環(huán)外進(jìn)行比較,較小和較大的重量值分別置為Min和Max,因此也有偶數(shù)個(gè)重量值w2:n-1參與for循環(huán)。在for 循環(huán)中,外層if 通過比較確定( w i , w i + 1 )中的較大和較小者。此工作與前面提到的分而治之算法步驟中的2) 相對(duì)應(yīng),而內(nèi)層的i f負(fù)責(zé)找出較小重量值和較大重量值中的最小值和最大值,這個(gè)工作對(duì)應(yīng)于3 )。for 循環(huán)將每一對(duì)重量值中較小值和較大值分別與當(dāng)前的最小值w M i n 和最大值w M a x 進(jìn)行比較,根據(jù)比較結(jié)果來修改M i n和M a x(如果必要)。復(fù)雜性分析注意到當(dāng)n為偶數(shù)時(shí),在for 循環(huán)外部將執(zhí)行一次比
5、較而在f o r循環(huán)內(nèi)部執(zhí)行3 ( n / 2 - 1 )次比較,比較的總次數(shù)為3 n / 2 - 2。當(dāng)n 為奇數(shù)時(shí),f o r循環(huán)外部沒有執(zhí)行比較,而內(nèi)部執(zhí)行了3(n-1)/2次比較。因此無論n 為奇數(shù)或偶數(shù),當(dāng)n>0時(shí),比較的總次數(shù)為3n/2ù-2次。關(guān)鍵步驟:程序14-1 找出最小值和最大值的非遞歸程序template<class T>bool MinMax(T w, int n, T& Min, T& Max)/ 尋找w 0 : n - 1 中的最小和最大值/ 如果少于一個(gè)元素,則返回f a l s e/ 特殊情形: n <= 1if
6、 (n < 1) return false;if (n = 1) Min = Max = 0;return true;/ /對(duì)Min 和M a x進(jìn)行初始化int s; / 循環(huán)起點(diǎn)if (n % 2) / n 為奇數(shù)Min = Max = 0;s = 1;else / n為偶數(shù),比較第一對(duì)if (w0 > w1) Min = 1;Max = 0;else Min = 0;Max = 1;s = 2;/ 比較余下的數(shù)對(duì)for (int i = s; i < n; i += 2) / 尋找wi 和w i + 1 中的較大者 / 然后將較大者與w M a x 進(jìn)行比較 / 將較小者與w M i n 進(jìn)行比較if (wi > wi+1) if (wi > wMax) Max = i;if (wi+1 &
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建榕樹養(yǎng)護(hù)管理辦法
- 廣西發(fā)展資金管理辦法
- 常減壓裝置培訓(xùn)課件
- 股票職業(yè)交易培訓(xùn)課件教學(xué)
- 插裝閥培訓(xùn)課件
- 肝臟核磁檢查技術(shù)課件
- 高州九年級(jí)期末數(shù)學(xué)試卷
- 豆丁網(wǎng)小升初數(shù)學(xué)試卷
- 高中浦東二模數(shù)學(xué)試卷
- 甘肅省中職數(shù)學(xué)試卷
- 車輛掛名使用權(quán)轉(zhuǎn)讓與免責(zé)保障協(xié)議
- 湖北省八校聯(lián)考2024-2025學(xué)年高一下學(xué)期6月期末生物試卷(含答案)
- 2025至2030中國碳納米管行業(yè)市場發(fā)展分析及風(fēng)險(xiǎn)與對(duì)策報(bào)告
- 艾滋病患者的心理與護(hù)理
- 人教版(2024)七年級(jí)下冊生物期末復(fù)習(xí)全冊考點(diǎn)背誦提綱
- 科研中試基地管理制度
- 2024-2025學(xué)年北師大版(2024)物理八年級(jí)下冊期末練習(xí)卷(一)(含解析)
- 兒童課件小學(xué)生講繪本成語故事《69狐假虎威》課件
- 2025年華僑港澳臺(tái)學(xué)生聯(lián)招考試英語試卷試題(含答案詳解)
- ASTM-D3359-(附著力測試標(biāo)準(zhǔn))-中文版
- JT-T 1495-2024 公路水運(yùn)危險(xiǎn)性較大工程專項(xiàng)施工方案編制審查規(guī)程
評(píng)論
0/150
提交評(píng)論