版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、合并、快速排序合并、快速排序一實驗目的:實驗目的:1.理解算法設計的基本步驟及各部的主要內(nèi)容、基本要求;2.加深對分治設計方法基本思想的理解,并利用其解決現(xiàn)實生活中的問題;3.通過本次試驗初步掌握將算法轉(zhuǎn)化為計算機上機程序的方法。二實驗內(nèi)容:實驗內(nèi)容:1.設計和實現(xiàn)遞歸的合并排序算法、快速排序算法;2.設計和實現(xiàn)消除遞歸的合并排序算法、快速排序算法;3.設計有代表性的典型輸入數(shù)據(jù),分析算法的效率;4.對于給定的輸入數(shù)據(jù),給出算運行結(jié)果和
2、運行結(jié)果,并給出實驗結(jié)果分。三實驗操作:實驗操作:1.合并排序思想合并排序思想:歸并排序是建立在歸并操作上的一種有效的排序算法。該算法是采用分治法的思想,是一種穩(wěn)定的排序方法。將以有序的子序列合并,得到完全有序的序列;及先使每個字序列有序,再使子序列段間有序。歸并過程:比較數(shù)組中兩個元素的大小,如比較a[i]和a[j]的大小,若a[i]=a[j],將第一個有序表中的元素a[i]復制到r[k]中,并令i和k分別加上1,如此循環(huán)下去,直到其
3、中一個有序表取完,然后再將另一個有序表剩下的元素復制到r中從下標k到下標t的單元。如:6,202,100,301,38,8,1第一次歸并:6,202,100,301,8,38,1第二次歸并:6,100,202,301,1,8,38第三次歸并:1,6,8,38,100,202,301合并排序算法:合并排序算法:voidmerge(intArray[]intlowinthigh)inti=lowjkint=(lowhigh)2j=1k=lo
4、wintlist=newint[high1]while(i=elselist[k]=Array[j]while(i=)list[k]=Array[i]while(j=high)list[k]=Array[j]f(intn=lown=highn)Array[n]=list[n]voidmergeSt(intArray[]intlowinthigh)if(lowhigh)int=(lowhigh)2mergeSt(Arraylow)輸入來控
5、制數(shù)據(jù)的輸入。對于輸出操作,首先要從文件中讀取數(shù)據(jù),為了區(qū)別各數(shù)據(jù),用逗號隔離,經(jīng)過處理后將數(shù)據(jù)存入到另一文件之中。由于輸入需要大量的數(shù)據(jù),可采用從“隨機數(shù).txt”中讀取數(shù)據(jù)。文件輸入算法:文件輸入算法:intinput()ofstreamoutFileoutFile.open(“E:程序設計practice1算法設計與分析文本文件夾number2.txt“ios::trunc)if(!outFile.is_open())cout“F
6、ilecantopen!“endlcout“Inputnumbers:“endlnumintlength=0cin.get(num)while(num!=E)lengthoutFilenumcin.get(num)outFile.close()returnlength文件輸出算法:文件輸出算法:voidoutput(intlength)doublestartendifstreaminFileofstreamoutFileinFile.o
7、pen(“E:程序設計practice1算法設計與分析文本文件夾number2.txt“)outFile.open(“E:程序設計practice1算法設計與分析文本文件夾result.txt“ios::trunc)Array=new[length]intList=newint[length]intRay=newint[length]memset(List0lengthsizeof(List))inti=0j=0outFile“排序前的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論