下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《算法設(shè)計(jì)與分析》實(shí)驗(yàn)報(bào)告一學(xué)號(hào):1004091130姓名:金玉琦日期:2011-10-13得分:一、實(shí)驗(yàn)內(nèi)容:歸并排序與快速排序。二、所用算法的根本思想及復(fù)雜度分析:1.分治法分治法的設(shè)計(jì)思想是將一個(gè)難以直接解決的大問題,劃分成一些規(guī)模較小的問題,以便各個(gè)擊破,分而治之。2.歸并排序1〕根本思想歸并排序其分治策略如下:劃分:將待排序的序列從n/2處劃分為兩個(gè)長度相等的序列。求解子問題:分別對(duì)這兩個(gè)子序列進(jìn)行歸并排序,得到兩個(gè)有序子序列。合并:將這兩個(gè)有序子序列合并成一個(gè)有序序列。2〕復(fù)雜度分析二路歸并排序的合并步的時(shí)間復(fù)雜度為O(n),所以,二路歸并排序算法存在如下遞推式: 1 n=2T(n)= 2T(n/2)+n n>2將上式進(jìn)行迭代運(yùn)算,計(jì)算的二路歸并排序的時(shí)間代價(jià)是O(nlogn)。二路歸并排序歸并過程中需要與原始記錄序列同樣數(shù)量的存儲(chǔ)空間,因此其空間復(fù)雜度為O(n)。3.快速排序1〕根本思想快速排序的分治思想如下:劃分:選定一個(gè)記錄作為軸值,以軸值為基準(zhǔn)將整個(gè)序列劃分成兩個(gè)子序列,軸值的位置i在劃分過程中確定,并且前一個(gè)子序列中的記錄的值均小于或等于軸值,后一個(gè)子序列的記錄的值均大于或等于軸值。求解子問題:分別對(duì)劃分后的每一個(gè)子序列遞歸處理。合并:將軸值前后的子序列的排序是就地進(jìn)行的,所以合并不需要執(zhí)行任何操作。2〕復(fù)雜度分析在最好的情況下每次劃分對(duì)一個(gè)記錄定位后,該記錄的左右兩側(cè)子序列的長度相同。在具有n個(gè)記錄的序列中,一次劃分需要對(duì)整個(gè)帶排序的序列掃描一遍,所需時(shí)間為O(n)。設(shè)T(n)是對(duì)n個(gè)記錄的序列進(jìn)行排序的時(shí)間,每次劃分后,正好把帶劃分的區(qū)間劃分為長度相同的兩個(gè)子序列,那么有:T(n)≤2T(n/2)+n≤2(2T(n/4)+n/2)+n=4T(n/4)+2n≤4(2T(n/8)+n/4)+2n=8T(n/8)+3n……≤nT(1)+nlogn=O(nlogn)因此時(shí)間復(fù)雜度是O(nlogn)。在最壞的情況下,待排序的記錄為正序或逆序時(shí),時(shí)間復(fù)雜度為O(n)。由于快速排序是遞歸執(zhí)行,需要一個(gè)棧存放每一層遞歸調(diào)用的必要信息,其最大的容量應(yīng)該與遞歸調(diào)用的深度一致。最好情況因?yàn)橐M(jìn)行l(wèi)ogn次遞歸調(diào)用,棧的深度是O(logn);最壞的情況下,進(jìn)行n-1次調(diào)用,所以棧的深度為O(n)。三、源程序及注釋:1、歸并排序voidMergeSort(intr[],intrl[],ints,intt){ intm; if(s==t) rl[s]=r[s]; else { m=(s+t)/2; MergeSort(r,rl,s,m); //歸并排序前半個(gè)子序列 MergeSort(r,rl,m+1,t); //歸并排序后半個(gè)子序列 Merge(rl,r,s,m,t); //合并兩個(gè)已排序的子序列 }}2、合并有序子序列voidMerge(intr[],intrl[],ints,intm,intt){ inti=s; intj=m+1; intk=s; while(i<=m&&j<=t) { if(r[i]<=r[j]) rl[k++]=r[i++]; //取r[i]和r[j]中較小的放入rl[k]中 else rl[k++]=r[j++]; } if(i<=m) { while(i<=m) rl[k++]=r[i++];//假設(shè)第一個(gè)子序列沒有處理完,進(jìn)行收尾處理 } else { while(j<=t) rl[k++]=r[j++];//假設(shè)第二個(gè)子序列沒有處理完,進(jìn)行收尾處理 } for(intn=s;n<=t;n++) { r[n]=rl[n]; //將合并完成后的rl[]序列送回r[]序列中 }}3、快速排序voidQuickSort(intr[],intfirst,intend){ intpivot; if(first<end) { pivot=Partition(r,first,end); //pivot是軸值在序列中位置 QuickSort(r,first,pivot-1); //遞歸左側(cè)序列進(jìn)行快排 QuickSort(r,pivot+1,end); //遞歸右側(cè)序列進(jìn)行快排 }}快速排序的一次劃分intPartition(intr[],intfirst,intend){ inti=first; intj=end; //初始化 inttemp=0; while(i<j) { while(i<j&&r[i]<=r[j])j--; //從右側(cè)掃描 if(i<j) { temp=r[i]; r[i]=r[j]; r[j]=temp; //將較小的記錄交換到前面 i++; } while(i<j&&r[i]<=r[j])i++; //從左側(cè)掃描 if(i<j) { temp=r[i]; r[i]=r[j]; r[j]=temp; //將較小的記錄交換到后面 j--; } } returni; //返回軸值的最終位置}四、運(yùn)行輸出結(jié)果:五、調(diào)試和運(yùn)行程序過程中產(chǎn)生的問題、采取的措施及獲得的相關(guān)經(jīng)驗(yàn)教訓(xùn):調(diào)試過程中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人住宅裝潢協(xié)議范本(2024年修訂)版
- 2025年度叉車安全操作培訓(xùn)課程優(yōu)化與推廣合同4篇
- 2025版廠房買賣及土地使用權(quán)變更與售后服務(wù)合同4篇
- 專業(yè)咨詢顧問合作合同(2024年度版)版B版
- 2025年度拆除宴會(huì)廳墻體改造項(xiàng)目施工協(xié)議4篇
- 2024陶瓷杯系列新品研發(fā)與市場推廣合作合同3篇
- 2025年度企業(yè)股權(quán)激勵(lì)計(jì)劃稅務(wù)籌劃與合規(guī)合同3篇
- 2025年新能源電站設(shè)備購銷合同協(xié)議4篇
- 2025年度醫(yī)療中心場地租賃及醫(yī)療設(shè)備租賃補(bǔ)充協(xié)議3篇
- 2025年度醫(yī)療設(shè)備存放租賃合同(2025年度)4篇
- 茶室經(jīng)營方案
- 軍隊(duì)文職崗位述職報(bào)告
- 小學(xué)數(shù)學(xué)六年級(jí)解方程練習(xí)300題及答案
- 電抗器噪聲控制與減振技術(shù)
- 中醫(yī)健康宣教手冊(cè)
- 2024年江蘇揚(yáng)州市高郵市國有企業(yè)招聘筆試參考題庫附帶答案詳解
- 消費(fèi)醫(yī)療行業(yè)報(bào)告
- 品學(xué)課堂新范式
- GB/T 1196-2023重熔用鋁錠
- 運(yùn)輸行業(yè)員工崗前安全培訓(xùn)
- 公路工程安全風(fēng)險(xiǎn)辨識(shí)與防控手冊(cè)
評(píng)論
0/150
提交評(píng)論