版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)(實(shí)訓(xùn))報(bào)告遼寧科技大學(xué) 學(xué)院(系) 專(zhuān)業(yè) 時(shí)間: 課程名稱: 算法 實(shí)驗(yàn)(實(shí)訓(xùn))題目:貪心算法的應(yīng)用班級(jí):姓名學(xué)號(hào)機(jī)臺(tái)號(hào)任課程教師實(shí)驗(yàn)(實(shí)訓(xùn))目的:掌握貪心算法的基本要素,包括貪心選擇性質(zhì)與最優(yōu)子結(jié)構(gòu)性質(zhì)。掌握貪心算法解決問(wèn)題的基本步驟,并利用它解決實(shí)際問(wèn)題。3?熟練掌握Dijkstra、普里姆(Prim)與克魯斯卡爾算法(Kruskal)。實(shí)驗(yàn)(實(shí)訓(xùn))原理、裝置、內(nèi)容、步驟、數(shù)據(jù)記錄及結(jié)果分析:1.已知3個(gè)物體與個(gè)背包,物體重量為W=(W],w2,w3)=(18,15,10),價(jià)值P=(p1,p2,p3)=(25,24,15),背包的容量為M=20,物品可以分割成任意大小,要求盡可能讓裝入背包中的物品總價(jià)值最大,但不能超過(guò)總?cè)萘?。答案?0,1,1/2),最優(yōu)值為31.5。#includevstdio.h>voidSort(intn,floatv[],floatw[]){inti;floatt;for(i=1;ivn;i++)if(v[i]>v[i+1]){t=v[i];v[i]=v[i+1];v[i+1]=t;}for(i=1;i<n;i++)if(w[i]>w[i+1]){t=w[i];w[i]=w[i+1];w[i+1]=t;}}voidKnapsack(intn,floatM,floatv[],floatw[],floatx[]){Sort(n,v,w);for(inti=1;i<=n;i++)x[i]=0;floatc=M;for(i=1;i<=n;i++){if(w[i]>c)break;x[i]=l;c-=w[i];}if(iv=n)x[i]=c/w[i];for(i=1;iv=n;i++)printf("%f\n",x[i]);}voidmain(){floatw[]={0,10,15,18},value=0;floatv[]={0,15,24,25};floatx[]={0,0,0,0};Knapsack(3,20,v,w,x);for(inti=1;i<4;i++)value=value+x[i]*v[i];printf("TotalValue:%f",value);}4.裝載問(wèn)題描述如下:有一批共n個(gè)集裝箱要裝上艘載重量為c的輪船,其中集裝箱i的重量為Wj。找出一種最優(yōu)裝載方案,將輪船盡可能裝滿,即在裝載體積不受限制的情況下,將盡可能重的集裝箱裝上輪船。#includevstdio.h>voidSort(inta[],intt[],intn){inttemp,min;for(inti=l;iv=n;i++) t[i]=i;for(i=1;i<=n;i++){min=i;for(intj=i+1;jv=n;j++)if(a[j]<a[min])min=j;temp=a[i];a[i]=a[min];a[min]=temp;
temp=t[i];t[i]=t[min];t[min]=temp;}voidLoading(intx[],intw[],intc,intn){int*t=newint[n+1];inti;Sort(w,t,n);for(i=1;i<=n;i++)x[i]=0;for(i=1;i<=n&&w[t[i]]<=c;i++){x[t[i]]=1;c-=w[t[i]];? ? ..voidmain()//OAmain°_EyNeOK{intw[9]={0,100,200,50,90,150,50,20,80},x[9]={0};intc=400;Loading(x,w,c,8);for(inti=1;i<=8;i++)printf("%d\t",x[i]);printf("\n");5.已知個(gè)帶權(quán)有向圖,如圖所示,其中每條邊的權(quán)是兩個(gè)頂點(diǎn)的距離,用Dijkstra算法計(jì)算從源到所有其他各項(xiàng)點(diǎn)的最短路徑長(zhǎng)度。#includeviostream>usingnamespacestd;voidDijkstra(intn,intv,intdist[],intprev[],intc[6][6]){intmaxint=65535;bool*s=newbool[n];for(inti=1;i<=n;i++){dist[i]=c[v][i];s[i]=false;if(dist[i]=maxint)prev[i]=0;elseprev[i]=v;}dist[v]=0;s[v]=true;for(i=1;i<n;i++){inttemp=maxint;intu=v;for(intj=1;j<=n;j++)訐((!s[j])&&(dist[j]<temp)){u=j;temp=dist[j];}s[u]=true;for(j=1;j<=n;j++){if((!s[j])&&(c[u][j]<maxint)){intnewdist=dist[u]+c[u][j];訐(newdist<dist[j]){dist[j]=newdist;prev[j]=u;}}}}}voidmain(){intn=5,v=l,u=5;inti,j;intq=0;intdist[6],prev[6];int*way=newint[n+1];intc[6”6]={{0,0,0,0,0,0},{0,0,10,65535,30,100},{0,65535,0,50,65535,65535},{0,65535,65535,0,65535,10},{0,65535,65535,20,0,60},{0,65535,65535,65535,65535,0}};Dijkstra(n,v,dist,prev,c);cout<<"Xi^IA?綁P'vvvvv"->"vvuvv"^A%aAeEQ:"<<dist[u]<<endl;intw=u;while(w!=v){ q++;way[q]=prev[w];w=prev[w];}coutvv"A?御於£。";for(j=q;j>=1;j--)cout<<way[j]<<"->";coutvvuvvendl;}6.用普里姆(Prim)算法求的最小生成樹(shù)。#includevstdio.h>//prim#definemaxint30#defineMAXCOST1000voidprim(intc[maxint][maxint],intn)〃c[i][j]IaE^,'dOjxiDjEu3EE^A^Io±B{inti,j,k,min,lowcost[maxint],closest[maxint];bools[maxint];s[l]=true;for(i=2;i<=n;i++)/*'O^¥pa1^aE%*/{lowcost[i]=c[1][i];closest[i]=1;s[i]=false;}/*OsO?魚(yú)C6入eSOD3O?^¥paxi^u^H¥pa*/for(i=1;ivn;i++){min=MAXCOST;j=1;for(k=2;kv=n;k++)if(lowcost[k]<min&&!s[k]){min=lowcost[k];j=k;}printf("(%d,%d)",closest[j],j);/*'dOj±B*/s[j]=true;/*jp^SOD*/for(k=2;kv=n;k++)if(c[j][k]vlowcost[k]&&!s[k]){lowcost[k]=c[j][k];closest[k]=j;}}}voidmain(){intn=6,i,j,mx[maxint][maxint];for(i=0;i<=n;i++)for(j=0;j<=n;j++)mx[i][j]=MAXCOST;mx[1][2]=6;mx[l][3]=l;mx[l][4]=5;mx[2][1]=6;mx[2][3]=5;mx[2][5]=3;mx[3][l]=l;mx[3][2]=5;mx[3][4]=5;mx[3][5]=6;mx[3][6]=4;mx[4][1]=5;mx[4][3]=5;mx[4][6]=2;mx[5][2]=3;mx[5][3]=6;mx[5][6]=6;mx[6][3]=4;mx[6][4]=2;mx[6][5]=6;printf("x!DjEu3EE^±B%_£°\n");prim(mx,n);}7?用克魯斯卡爾算法(Kruska1)求最小生成樹(shù)算法#inc1udevstdio.h>〃xiDjEu3EE^kruska1Ea^>,#defineVn6//^¥paEytypedefstruct//±B%_^a11{intbegin;intend;intweight;}edge;//AU%O%0O6intGraph[Vn][Vn]={{0},{6},{1,5},{5,0,5},{0,3,6},{0,0,4,2,6}};voidEdges(edgea[],int&n);〃E0%一土BDAkvoidSort(edgea[],int);//AADo(汩衛(wèi)》?屈述b入AD&Ea「)voidKruska1(edgeE[],int);//n6ixiDjEu3EE^intFind(int1ink[],int);〃ObA-f°?OO§pf22^voidmain(){intEn=0; //±BEyedgeEs[Vn*(Vn-1)/2];〃土^%一Edges(Es,En);Sort(Es,En);Kruska1(Es,En);}voidEdges(edgea[],int&n){printf("AU%O%0O6£°\n");for(inti=0;i<Vn;i++){for(intj=0;j<=i;j++){printf("%d\t",Graph[i][j]);if(Graph[i][j]>0){a[n].begin=j+1;a[n].end=i+1;a[n].weight=Graph[i][j];n++;}}printf("\n");}}voidSort(edgea[],intn){for(inti=0;ivn;i++)for(intj=i+l;jvn;j++)if(a[i].weight>a[j].weight){inttemp=a[i].begin;a[i].begin=a[j].begin;a[j].begin=temp;temp=a[i].end;a[i].end=a[j].end;a[j].end=temp;temp=a[i].weight;a[i].weight=a[j].weight;a[j].weight=temp;}}voidKruskal(edgeE[],intN){intn,m,link[Vn]={0};printf("\nx!DjEu3EE^:\n");for(inti=0;i<N;i+
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨床氨甲苯酸、氨基己酸、氨甲環(huán)酸等止血藥適應(yīng)癥、用法、不良反應(yīng)、禁忌癥等區(qū)別及藥理作用
- 2024果樹(shù)采購(gòu)合同
- 2025高考生物備考說(shuō)課稿:免疫失調(diào)與免疫學(xué)的應(yīng)用說(shuō)課稿
- 2024融資合同范本:新能源汽車(chē)產(chǎn)業(yè)專(zhuān)項(xiàng)協(xié)議3篇
- 專(zhuān)屬2024學(xué)校系列校服訂購(gòu)協(xié)議
- 2024液化氣運(yùn)輸合同能源消耗與減排責(zé)任規(guī)范文本3篇
- 專(zhuān)業(yè)咨詢顧問(wèn)合作合同(2024年度版)版
- 福建省南平市松溪縣鄭墩中學(xué)高二語(yǔ)文月考試題含解析
- 12坐井觀天(說(shuō)課稿)2024-2025學(xué)年統(tǒng)編版語(yǔ)文二年級(jí)上冊(cè)
- 1-1《子路、曾皙、冉有、公西華侍坐》說(shuō)課稿-2024-2025學(xué)年高一語(yǔ)文下學(xué)期同步說(shuō)課稿(統(tǒng)編版必修下冊(cè))
- 人教版(2024新版)七年級(jí)上冊(cè)生物期末復(fù)習(xí)全冊(cè)知識(shí)點(diǎn)提綱
- 期末達(dá)標(biāo)測(cè)試卷(二)(試卷)-2024-2025學(xué)年冀教版數(shù)學(xué)四年級(jí)上冊(cè)
- 2024-2030年中國(guó)干燥設(shè)備行業(yè)研發(fā)創(chuàng)新?tīng)顩r及發(fā)展行情監(jiān)測(cè)報(bào)告
- GB/T 44413-2024城市軌道交通分類(lèi)
- GB 19041-2024光氣及光氣化產(chǎn)品生產(chǎn)安全規(guī)范
- 拔除氣管導(dǎo)管的護(hù)理
- 2024年大學(xué)英語(yǔ)四六級(jí)考試大綱詞匯
- NB/T 11450-2023礦用隔爆型三相永磁同步電動(dòng)滾筒
- 2024年山東省生態(tài)環(huán)境監(jiān)測(cè)專(zhuān)業(yè)技術(shù)人員大比武理論試題庫(kù)(含答案)
- GB 28008-2024家具結(jié)構(gòu)安全技術(shù)規(guī)范
- 消防技能訓(xùn)練-射水姿勢(shì)與形式課件講解
評(píng)論
0/150
提交評(píng)論