![算法設(shè)計(jì)實(shí)驗(yàn)報(bào)告一-_第1頁(yè)](http://file4.renrendoc.com/view/3cbcc3f2ef1a3da7670596b5351e43f4/3cbcc3f2ef1a3da7670596b5351e43f41.gif)
![算法設(shè)計(jì)實(shí)驗(yàn)報(bào)告一-_第2頁(yè)](http://file4.renrendoc.com/view/3cbcc3f2ef1a3da7670596b5351e43f4/3cbcc3f2ef1a3da7670596b5351e43f42.gif)
![算法設(shè)計(jì)實(shí)驗(yàn)報(bào)告一-_第3頁(yè)](http://file4.renrendoc.com/view/3cbcc3f2ef1a3da7670596b5351e43f4/3cbcc3f2ef1a3da7670596b5351e43f43.gif)
![算法設(shè)計(jì)實(shí)驗(yàn)報(bào)告一-_第4頁(yè)](http://file4.renrendoc.com/view/3cbcc3f2ef1a3da7670596b5351e43f4/3cbcc3f2ef1a3da7670596b5351e43f44.gif)
![算法設(shè)計(jì)實(shí)驗(yàn)報(bào)告一-_第5頁(yè)](http://file4.renrendoc.com/view/3cbcc3f2ef1a3da7670596b5351e43f4/3cbcc3f2ef1a3da7670596b5351e43f45.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
算法設(shè)計(jì)實(shí)驗(yàn)報(bào)告一、實(shí)驗(yàn)內(nèi)容:題目:1、編程實(shí)現(xiàn)常見(jiàn)排序算法,如插入排序、歸并排序、快速排序、隨機(jī)化的快速排序等,并統(tǒng)計(jì)不同輸入規(guī)模下(1組從小到大排序,1組從大到小排序,其余8組隨機(jī))的平均物理執(zhí)行時(shí)間。2、編程實(shí)現(xiàn)循環(huán)賽日程表設(shè)有n=2k個(gè)運(yùn)動(dòng)員要進(jìn)行網(wǎng)球循環(huán)賽,先要設(shè)計(jì)一個(gè)滿(mǎn)足一下要求的比賽日常表:(1)每個(gè)選手必須與其他n-1個(gè)選手各賽一次(2)每個(gè)選手一天只能賽一次(3)循環(huán)賽一共進(jìn)行n-1天二、核心代碼說(shuō)明:sort.htemplate<classtype>structSqList{ type*key; intlength;};template<classtype>voidCreateSqList(SqList<type>&sl)//type為int{ intn; cout<<"請(qǐng)輸入順序表的長(zhǎng)度"<<endl; cin>>n; sl.length=n; sl.key=newint[sl.length+1]; assert(sl.key); srand(time(0)); for(inti=1;i<=sl.length;i++) { sl.key[i]=rand(); }}template<classtype>voidOutPut(SqList<type>&L){ for(intj=1;j<=L.length;++j) cout<<L.key[j]<<"\t"; cout<<endl;}//折半插入排序template<classtype>voidBInsertSort(SqList<type>&L){ inthigh,low,m; for(inti=2;i<=L.length;i++) { L.key[0]=L.key[i];//將L.key[i]暫存到L.key[0] low=1; high=i-1; while(low<=high)//在key[low]到key[high]中折半查找有序插入的位置 { m=(low+high)/2;//折半 if(L.key[0]<=L.key[m]) high=m-1;//插入低半?yún)^(qū) else low=m+1;//插入高半?yún)^(qū) } for(intj=i-1;j>=high+1;--j) L.key[j+1]=L.key[j];//記錄后移 L.key[high+1]=L.key[0];//插入 }}//歸并排序template<classtype>voidMerge(type*SR,type*TR,inti,intm,intn){//將有序的SR[i...m]和SR[m+1...n]歸并為有序的TR[i...n] intj,k; for(j=m+1,k=i;i<=m&&j<=n;k++)//將SR中的記錄由大到小并入TR { if(SR[i]<=SR[j]) TR[k]=SR[i++]; else TR[k]=SR[j++]; } if(i<=m)//將剩余的SR[i...m]賦值到TR for(inta=i;a<=m;a++) TR[k++]=SR[a]; elseif(j<=n)//將剩余的SR[j...n]復(fù)制到TR for(intb=j;b<=n;b++) TR[k++]=SR[b];}template<classtype>voidMSort(type*SR,type*TR1,ints,intt){ typeTR2[100000];//數(shù)組大小可以根據(jù)實(shí)際情況重新定義 intm; //將SR[s...t]歸并排序?yàn)門(mén)R[s...t] if(s==t) TR1[s]=SR[s]; else { m=(s+t)/2;//將SR[s...t]平分為SR[s...m]和SR[m+1...t] MSort(SR,TR2,s,m);//遞歸地將SR[s...m]歸并為有序的TR2[s...m] MSort(SR,TR2,m+1,t);//遞歸地將SR[m+1...t]歸并為T(mén)R2[m+1...t] Merge(TR2,TR1,s,m,t);//將TR2[s...m]和TR2[m+1...t]歸并到TR1[s...t] }}template<classtype>voidMergeSort(SqList<type>&L){//對(duì)順序表L作歸并排序 MSort(L.key,L.key,1,L.length);}//快速排序template<classtype>intPartition(SqList<type>&L,intlow,inthigh){//交換順序表L中子表key[low]--key[high]中的記錄,樞軸記錄到位,并返回其所在位置,//此時(shí)在它之前(后)的記錄均不大(小)于它 typepivotkey; L.key[0]=L.key[low];//用子表的第一個(gè)記錄作樞軸記錄 pivotkey=L.key[low];//關(guān)鍵字 while(low<high)//從表的兩端交替向中間掃描 { while(low<high&&L.key[high]>=pivotkey)--high; L.key[low]=L.key[high];//將比樞軸小的記錄移至低端 while(low<high&&L.key[low]<=pivotkey)++low; L.key[high]=L.key[low];//將比樞軸大的記錄移至高端 } L.key[low]=L.key[0];//樞軸記錄到位 returnlow;//返回樞軸位置}template<classtype>voidQSort(SqList<type>&L,intlow,inthigh){ intmid;//接收樞軸位置 if(low<high) { mid=Partition(L,low,high); QSort(L,low,mid-1);//對(duì)低子表進(jìn)行排序 QSort(L,mid+1,high);//對(duì)高子表進(jìn)行排序 }}template<classtype>voidQuitSort(SqList<type>&L)//對(duì)順序表進(jìn)行快速排序{ QSort(L,1,L.length);}Sort.cppvoidmain(){ SqList<int>sl; LONGLONGstart1,finish1,start2,finish2,start3,finish3; CreateSqList(sl); start1=GetTickCount(); BInsertSort(sl); finish1=GetTickCount(); deletesl.key; cout<<"插入排序平均物理執(zhí)行時(shí)間為"<<finish1-start1<<"ms"<<endl; CreateSqList(sl); start3=GetTickCount(); QuitSort(sl); finish3=GetTickCount(); deletesl.key; cout<<"快速排序平均物理執(zhí)行時(shí)間為"<<finish3-start3<<"ms"<<endl; CreateSqList(sl); start2=GetTickCount(); MergeSort(sl); finish2=GetTickCount(); deletesl.key; cout<<"歸并排序平均物理執(zhí)行時(shí)間為"<<finish2-start2<<"ms"<<endl;}richengbiao.cppintmain(void){ intk; cout<<"輸入k值,且運(yùn)動(dòng)員數(shù)為2^k:"<<endl; cin>>k; intn=1; for(inti=1;i<=k;i++) n*=2; intplayers=n; inta[100][100]; for(inti=1;i<=n;i++) { a[1][i]=i; } intm=1; for(ints=1;s<=k;s++) { n/=2; for(intt=1;t<=n;t++) for(inti=m+1;i<=2*m;i++) for(intj=m+1;j<=2*m;j++) { a[i][j+(t-1)*m*2]=a[i-m][j+(t-1)*m*2-m]; a[i][j+(t-1)*m*2-m]=a[i-m][j+(t-1)*m*2]; } m*=2; } for(inti=1;i<=players;i++) { for(intj=1;j<=players;j++) cout<<a[i][j]<<""; cout<<endl; } return0;}三、測(cè)試結(jié)果:題目一先把每個(gè)算法的排序時(shí)間得到:再做成表格:算法10001000050000100000插入排序16ms78ms1797ms7484ms歸并排序0ms0ms20ms56ms快速排序0ms0ms16ms32ms題目二四、心得與體
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- EPC總承包項(xiàng)目總體實(shí)施方案
- 臨時(shí)用工項(xiàng)目合同范本
- 修理報(bào)廢貨車(chē)合同范本
- 2025年家電產(chǎn)品出口代理與分銷(xiāo)合同
- 公對(duì)公購(gòu)買(mǎi)合同范本
- 供銷(xiāo)合同范例付款方式
- 2025年度家政保潔與家庭環(huán)保改造服務(wù)合同
- 2025年度家政保潔服務(wù)與家居美化保養(yǎng)合同范本
- 別墅庭院采購(gòu)合同范例
- 決算清單編制費(fèi)合同范本
- 長(zhǎng)江委水文局2025年校園招聘17人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年湖南韶山干部學(xué)院公開(kāi)招聘15人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 企業(yè)動(dòng)火作業(yè)安全管理制度范文
- 信息安全意識(shí)培訓(xùn)課件
- 運(yùn)動(dòng)按摩全套課件
- 除銹、油漆檢驗(yàn)批質(zhì)量驗(yàn)收記錄樣表
- pp顧問(wèn)的常見(jiàn)面試問(wèn)題
- 法理學(xué)原理與案例完整版教學(xué)課件全套ppt教程
- 軟體家具、沙發(fā)質(zhì)量檢驗(yàn)及工藝
- 電鍍廢水中各種重金屬?gòu)U水處理反應(yīng)原理及控制條件
- Q∕GDW 12118.1-2021 人工智能平臺(tái)架構(gòu)及技術(shù)要求 第1部分:總體架構(gòu)與技術(shù)要求
評(píng)論
0/150
提交評(píng)論