![分治算法試驗(yàn)用分治法查找數(shù)組元素的最大值和最小值_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/21/69735383-042f-43e1-ad91-233ed96dafac/69735383-042f-43e1-ad91-233ed96dafac1.gif)
![分治算法試驗(yàn)用分治法查找數(shù)組元素的最大值和最小值_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/21/69735383-042f-43e1-ad91-233ed96dafac/69735383-042f-43e1-ad91-233ed96dafac2.gif)
![分治算法試驗(yàn)用分治法查找數(shù)組元素的最大值和最小值_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/21/69735383-042f-43e1-ad91-233ed96dafac/69735383-042f-43e1-ad91-233ed96dafac3.gif)
![分治算法試驗(yàn)用分治法查找數(shù)組元素的最大值和最小值_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/21/69735383-042f-43e1-ad91-233ed96dafac/69735383-042f-43e1-ad91-233ed96dafac4.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、算法分析與設(shè)計(jì)實(shí)驗(yàn)報(bào)告第一次實(shí)驗(yàn)姓名學(xué)號(hào)班級(jí)時(shí)間10.17上午地點(diǎn)工訓(xùn)樓309實(shí)驗(yàn)名稱分治算法實(shí)驗(yàn)(用分治法查找數(shù)組元素的最大值和最小值)實(shí)驗(yàn)?zāi)康耐ㄟ^上機(jī)實(shí)驗(yàn),要求掌握分治算法的問題描述、算法設(shè)計(jì)思想、程序設(shè)計(jì)。實(shí)驗(yàn)原理使用分治的算法,根據(jù)不同的輸入用例,能準(zhǔn)確的輸出用例中的最大值與最小值。笄計(jì)算出程序運(yùn)行所需要的時(shí)間。程序思路:利用分治法,將一個(gè)數(shù)組元素大于2的數(shù)組分成兩個(gè)子數(shù)組,然后對(duì)每一個(gè)子數(shù)組遞歸調(diào)用,直到最小的子數(shù)組的元素個(gè)數(shù)為1個(gè)或者是2個(gè),此時(shí)直接就能得出最大值與最小值,然后合并子數(shù)組,比較2個(gè)子數(shù)組的最大值與最小值,依次進(jìn)行下去,知道找到整個(gè)數(shù)組的最大值與最小值。實(shí)驗(yàn)步驟1 .
2、先解決小規(guī)模的問題,如數(shù)組中只有1個(gè)兀素或者只有兩個(gè)兀素時(shí)候的情況。2 .將問題分解,如果數(shù)組的元素大于等于3個(gè),將數(shù)組分為兩個(gè)小的數(shù)組。3 .遞歸的解各子問題,將中分解的兩個(gè)小的數(shù)組再進(jìn)行以上兩個(gè)步驟最后都化為小規(guī)模問題。4 .將各子問題的解進(jìn)行比較最終得到原問題的解。關(guān)鍵代碼/分治法處理整個(gè)數(shù)組,求出最大值與最小值voidmerge(inta,intleft,intright,int&Max,int&Min)(intmax1=0,min1=0,max2=0,min2=0;if(right-left>2)/當(dāng)數(shù)組中元素個(gè)數(shù)大于3時(shí),才實(shí)行分治法(intmid=(righ
3、t+left)/2;merge(a,left,mid,max1,min1);/左半邊遞歸調(diào)用自身,求出最大值與最小值,分別保存在max1,min1中merge(a,mid+1,right,max2,min2);/右半邊遞歸調(diào)用自身,求出最大值與最小值,分別保存在max2,min2中if(max1>=max2)Max=max1;/子序列的兩合并,求出最大值與最小值elseMax=max2;/分別保存在Max與Minif(min1<=min2)Min=min1;elseMin=min2;)else/當(dāng)數(shù)組中元素個(gè)數(shù)少于2時(shí),直接賦值處理(Max=compmax(a,left,right
4、);Min=compmin(a,left,right);)非遞歸實(shí)現(xiàn):測(cè)試結(jié)果利用分治法(遞歸實(shí)現(xiàn))S吊算法賣,一匚三通過這次實(shí)驗(yàn),加深了我對(duì)分治法的理解,明白了分治法到底是怎樣的一個(gè)過程,在代碼實(shí)現(xiàn)分治法的時(shí)候,也使我加深了對(duì)于自己構(gòu)造函數(shù)的理解,明白實(shí)驗(yàn)心得了分治法利用代碼是怎樣實(shí)現(xiàn)的,以及構(gòu)造函數(shù)的傳參與返回值等等地方需要注意的東西,是我認(rèn)識(shí)到我的編程能力的不足,更加加深了我要好好學(xué)習(xí),多做練習(xí)的想法,總體收獲很大。實(shí)驗(yàn)比較觀察上面兩個(gè)不同的實(shí)現(xiàn)方法所花費(fèi)的時(shí)間,我們可以看到,采用非遞歸的方法實(shí)現(xiàn),所花費(fèi)的時(shí)間比利用分治法花費(fèi)的時(shí)間多,為什么會(huì)出現(xiàn)這樣的結(jié)果,我們可以知道在分治法需要比較
5、的次數(shù)比非遞歸方法多,甚至是多得多,所以它所花費(fèi)的時(shí)間也多,所以對(duì)于這種求最大值最小值的問題,利用非遞歸的方法相對(duì)會(huì)于-點(diǎn)。實(shí)驗(yàn)得分助教簽名附錄:完整代碼(分治法)#include<iostream>#include<time.h>#include<iomanip>usingnamespacestd;/當(dāng)數(shù)組中的元素個(gè)數(shù)小于3時(shí),處理最大值intcompmaxQntA口,intstart,intend)intmax;if(start<end)/有兩個(gè)元素if(Astart<=Aend)max=Aend;elsemax=Astart;else/有一
6、個(gè)元素max=Astart;returnmax;/當(dāng)數(shù)組中元素的個(gè)數(shù)小于2時(shí),處理最小值intcompmin(intA口,intstart,intend)intmin;if(start<end)/有兩個(gè)元素if(Astart<=Aend)min=Astart;elsemin=Aend;)else/有一個(gè)元素min=Astart;returnmin;)/分治法處理整個(gè)數(shù)組,求最大值與最小值voidmerge(inta,intleft,intright,int&Max,int&Min)/Max,Min用來保存最大值與最小值/之所以使用&引用,是由于如果只是簡(jiǎn)單白
7、使用變量,并不會(huì)改變MaxWMin的值,使用指針也可以intmax1=0,min1=0,max2=0,min2=0;if(right-left>2)/當(dāng)數(shù)組中元素個(gè)數(shù)大于等于3時(shí),進(jìn)行分治intmid=(right+left)/2;merge(a,left,mid,max1,min1);/左半邊遞歸調(diào)用自身,求出最大值最小值,分別保存在max1,min1中merge(a,mid+1,right,max2,min2);/右半邊遞歸調(diào)用自身,求出最大值最小值,分別保存在max2,min2中if(max1>=max2)/子序列兩兩合并,求出最大值與最小值,保存在MaxWMin中Max=m
8、ax1;elseMax=max2;if(min1<=min2)Min=min1;elseMin=min2;)else/數(shù)組中元素個(gè)數(shù)小于3時(shí)的情況,直接賦值Max=compmax(a,left,right);Min=compmin(a,left,right);)voidran(int*input,intn)/隨機(jī)生成數(shù)組元素函數(shù)inti;srand(time(0);for(i=0;i<n;i+)inputi=rand();inputi='0')inta1000000;/定義全局變量用來存放要查找的數(shù)組intmain()(intn;inti;intmax;intmin
9、;cout<<"請(qǐng)輸入要查找的序列個(gè)數(shù):"<<endl;for(i=0;i<5;i+)(cin>>n;ran(a,n);clock_tstart,end,over;/計(jì)算程序運(yùn)行時(shí)間的算法start=clock();end=clock();over=end-start;start=clock();merge(a,0,n-1,max,min);/調(diào)用分治法算法cout<<max<<'"<<min<<endl;end=clock();printf("Thetim
10、eis%6.3f",(double)(end-start-over)/CLK_TCK);/顯示運(yùn)行時(shí)間)system("pause");/停止運(yùn)行窗口return0;)完整代碼(非遞歸方法)#include<iostream>#include<time.h>#include<iomanip>usingnamespacestd;/隨機(jī)生成數(shù)組元素函數(shù)voidran(int*input,intn)(inti;srand(time(0);for(i=0;i<n;i+)inputi=rand();inputi='0')inta1000000;intmain()(intmax=a0,min=a0;inti,j,n;cout<<"請(qǐng)輸入數(shù)據(jù)規(guī)模:"<<endl;for(j=0;j<5;j+)(cin>>n;ran(a,n);clock_tstart,end,over;/計(jì)算程序運(yùn)行時(shí)間的算法start=clock();end=clock();over=end-start;start=clock();for(i=1;i<n;i+)(if(ai>max)max=ai;if(ai<min)min=ai;cout&l
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 溝通與協(xié)調(diào)打造和諧職場(chǎng)環(huán)境
- 生態(tài)建筑引領(lǐng)未來商業(yè)趨勢(shì)
- 現(xiàn)代科技在股票市場(chǎng)分析中的應(yīng)用
- 校園餐飲消費(fèi)大數(shù)據(jù)洞察學(xué)生消費(fèi)習(xí)慣
- 2024年八年級(jí)生物下冊(cè) 6.2.1遺傳說課稿 (新版)冀教版
- 2024年八年級(jí)物理下冊(cè) 8.1認(rèn)識(shí)壓強(qiáng)說課稿 (新版)粵教滬版
- 14《普羅米修斯》(說課稿)2024-2025學(xué)年-統(tǒng)編版語(yǔ)文四年級(jí)上冊(cè)
- 2024年五年級(jí)數(shù)學(xué)下冊(cè) 五 分?jǐn)?shù)除法練習(xí)五說課稿 北師大版
- 2024-2025學(xué)年高中歷史 專題1 中國(guó)傳統(tǒng)文化主流思想的演變 3 宋明理學(xué)說課稿 人民版必修3
- 2024-2025學(xué)年八年級(jí)物理下冊(cè) 第十章 從粒子到宇宙 10.1 認(rèn)識(shí)分子說課稿 (新版)粵教滬版
- 2025年個(gè)人合法二手車買賣合同(4篇)
- 2025年山西國(guó)際能源集團(tuán)限公司所屬企業(yè)招聘43人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 青海省海北藏族自治州(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)統(tǒng)編版隨堂測(cè)試(上學(xué)期)試卷及答案
- 外研版(三起)小學(xué)英語(yǔ)三年級(jí)下冊(cè)Unit 1 Animal friends Get ready start up 課件
- 江蘇省無(wú)錫市2023-2024學(xué)年高三上學(xué)期期終教學(xué)質(zhì)量調(diào)研測(cè)試語(yǔ)文試題(解析版)
- 銅礦隱蔽致災(zāi)普查治理工作計(jì)劃
- 2024-2030年中國(guó)出版社行業(yè)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 外研版七年級(jí)上冊(cè)英語(yǔ)課文翻譯
- 《民航安全檢查(安檢技能實(shí)操)》課件-第一章 民航安全檢查員職業(yè)道德
- 學(xué)校食品安全教育學(xué)習(xí)活動(dòng)食品安全講座課件
- 綠色建筑項(xiàng)目造價(jià)咨詢服務(wù)方案
評(píng)論
0/150
提交評(píng)論