![實(shí)驗(yàn)3 貪心算法_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/25/0b2b5a9a-4698-446c-93b1-1f449e03e04e/0b2b5a9a-4698-446c-93b1-1f449e03e04e1.gif)
![實(shí)驗(yàn)3 貪心算法_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/25/0b2b5a9a-4698-446c-93b1-1f449e03e04e/0b2b5a9a-4698-446c-93b1-1f449e03e04e2.gif)
![實(shí)驗(yàn)3 貪心算法_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/25/0b2b5a9a-4698-446c-93b1-1f449e03e04e/0b2b5a9a-4698-446c-93b1-1f449e03e04e3.gif)
![實(shí)驗(yàn)3 貪心算法_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/25/0b2b5a9a-4698-446c-93b1-1f449e03e04e/0b2b5a9a-4698-446c-93b1-1f449e03e04e4.gif)
![實(shí)驗(yàn)3 貪心算法_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/25/0b2b5a9a-4698-446c-93b1-1f449e03e04e/0b2b5a9a-4698-446c-93b1-1f449e03e04e5.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)3 貪心算法姓名 學(xué)號(hào) 班級(jí) 實(shí)驗(yàn)日期 實(shí)驗(yàn)地點(diǎn) 一、實(shí)驗(yàn)?zāi)康?、掌握貪心算法的設(shè)計(jì)思想。2、理解最小生成樹的相關(guān)概念。二、實(shí)驗(yàn)環(huán)境1、硬件環(huán)境CPU:酷睿i5內(nèi)存:4GB硬盤:1T2、軟件環(huán)境操作系統(tǒng):Windows10編程環(huán)境:jdk編程語言:Java三、實(shí)驗(yàn)內(nèi)容:在Prim算法與Kruskal算法中任選一種求解最小生成樹問題。1、你選擇的是:Prim算法2、數(shù)據(jù)結(jié)構(gòu)(1)圖的數(shù)據(jù)結(jié)構(gòu)圖結(jié)構(gòu)是研究數(shù)據(jù)元素之間的多對(duì)多的關(guān)系。在這種結(jié)構(gòu)中,任意兩個(gè)元素之間可能存在關(guān)系,即結(jié)點(diǎn)之間的關(guān)系可以是任意的,圖中任意元素之間都可能相關(guān)。圖形結(jié)構(gòu)多個(gè)對(duì)多個(gè),如(2)樹的數(shù)據(jù)結(jié)構(gòu)
2、樹結(jié)構(gòu)是研究數(shù)據(jù)元素之間的一對(duì)多的關(guān)系。在這種結(jié)構(gòu)中,每個(gè)元素對(duì)下(層)可以有0個(gè)或多個(gè)元素相聯(lián)系,對(duì)上(層)只有唯一的一個(gè)元素相關(guān),數(shù)據(jù)元素之間有明顯的層次關(guān)系。樹形結(jié)構(gòu)一個(gè)對(duì)多個(gè),如3、算法偽代碼Prim(G,E,W)輸入:連通圖G輸出:G的最小生成樹T1. S1;T=2. While V-S do3. 從V-S中選擇j使得j到S中頂點(diǎn)的邊e的權(quán)最??;TTe4. SSj3、算法分析時(shí)間復(fù)雜度:O(n)空間復(fù)雜度:O(n2)4、關(guān)鍵代碼(含注釋)package Prim;import java.util.*;public class Main static int MAXCOST=Integ
3、er.MAX_VALUE; static int Prim(int graph, int n) /* lowcosti記錄以i為終點(diǎn)的邊的最小權(quán)值,當(dāng)lowcosti=0時(shí)表示終點(diǎn)i加入生成樹 */ int lowcost=new intn+1; /* msti記錄對(duì)應(yīng)lowcosti的起點(diǎn),當(dāng)msti=0時(shí)表示起點(diǎn)i加入生成樹 */ int mst=new intn+1; int min, minid, sum = 0; /* 默認(rèn)選擇1號(hào)節(jié)點(diǎn)加入生成樹,從2號(hào)節(jié)點(diǎn)開始初始化 */ for (int i = 2; i = n; i+)/* 最短距離初始化為其他節(jié)點(diǎn)到1號(hào)節(jié)點(diǎn)的距離 */low
4、costi = graph1i; /* 標(biāo)記所有節(jié)點(diǎn)的起點(diǎn)皆為默認(rèn)的1號(hào)節(jié)點(diǎn) */msti = 1; /* 標(biāo)記1號(hào)節(jié)點(diǎn)加入生成樹 */ mst1 = 0; /* n個(gè)節(jié)點(diǎn)至少需要n-1條邊構(gòu)成最小生成樹 */ for (int i = 2; i = n; i+)min = MAXCOST;minid = 0; /* 找滿足條件的最小權(quán)值邊的節(jié)點(diǎn)minid */ for (int j = 2; j = n; j+) /* 邊權(quán)值較小且不在生成樹中 */ if (lowcostj min & lowcostj != 0) min = lowcostj; minid = j; /* 輸出生成樹邊的
5、信息:起點(diǎn),終點(diǎn),權(quán)值 */System.out.printf(%c - %c : %dn, mstminid + A - 1, minid + A - 1, min); /* 累加權(quán)值 */ sum += min; /* 標(biāo)記節(jié)點(diǎn)minid加入生成樹 */ lowcostminid = 0; /* 更新當(dāng)前節(jié)點(diǎn)minid到其他節(jié)點(diǎn)的權(quán)值 */ for (int j = 2; j = n; j+) /* 發(fā)現(xiàn)更小的權(quán)值 */ if (graphminidj lowcostj) /* 更新權(quán)值信息 */ lowcostj = graphminidj; /* 更新最小權(quán)值邊的起點(diǎn) */ mstj
6、= minid; /* 返回最小權(quán)值和 */return sum; public static void main(String args) Scanner sc=new Scanner(System.in); int cost; char chx, chy; /* 讀取節(jié)點(diǎn)和邊的數(shù)目 */ int n=sc.nextInt();/節(jié)點(diǎn) int m=sc.nextInt();/邊數(shù) int graph=new intn+1n+1; /* 初始化圖,所有節(jié)點(diǎn)間距離為無窮大 */ for (int i = 1; i = n; i+)for (int j = 1; j = n; j+)graphij
7、 = MAXCOST; /* 讀取邊信息 */ for (int k = 0; k m; k+) chx=sc.next().charAt(0); chy=sc.next().charAt(0); cost=sc.nextInt(); int i = chx - A + 1; int j = chy - A + 1; graphij = cost; graphji = cost; /* 求解最小生成樹 */ cost = Prim(graph, n); /* 輸出最小權(quán)值和 */ System.out.println(Total:+cost); 5、實(shí)驗(yàn)結(jié)果(1)輸入(2)輸出最小生成樹的權(quán)值為:生成過程: (a) (b) (c) (d) (e) 四、實(shí)
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年重慶貨運(yùn)從業(yè)資格證模擬試題答案大全及答案
- 2025年貴州貨運(yùn)從業(yè)資格證500道題目答案
- 2025年池州道路貨運(yùn)駕駛員從業(yè)資格證考試
- 2025年巴彥淖爾貨運(yùn)從業(yè)資格證考試模擬考試
- 病人護(hù)理服務(wù)合同(2篇)
- 北京課改版歷史七年級(jí)下冊(cè)第2課《貞觀之治》聽課評(píng)課記錄
- 2024-2025學(xué)年八年級(jí)數(shù)學(xué)上冊(cè)第十三章軸對(duì)稱13.1軸對(duì)稱教案新版新人教版
- 2024-2025學(xué)年高中數(shù)學(xué)課時(shí)分層作業(yè)13向量的概念含解析新人教B版必修4
- 2024-2025學(xué)年七年級(jí)數(shù)學(xué)上冊(cè)第1章有理數(shù)1.5有理數(shù)的乘法和除法作業(yè)設(shè)計(jì)新版湘教版
- 英語七年級(jí)聽評(píng)課記錄
- 西門子starter軟件簡(jiǎn)易使用手冊(cè)
- 暢捷通g6財(cái)務(wù)管理系統(tǒng)專業(yè)版使用手冊(cè)
- 化工儀表及自動(dòng)化ppt課件匯總?cè)譸pt完整版課件最全教學(xué)教程整套課件全書電子教案全套電子講義
- 2022注冊(cè)電氣工程師專業(yè)考試規(guī)范清單匯總
- 桂花-作文ppt-PPT課件(共14張)
- 高一數(shù)學(xué)概率部分知識(shí)點(diǎn)總結(jié)及典型例題解析 新課標(biāo) 人教版 必修
- 鐵路運(yùn)費(fèi)計(jì)算方法
- 《小腦梗死護(hù)理查房》
- 免疫及炎癥相關(guān)信號(hào)通路
- 某風(fēng)電場(chǎng)設(shè)備材料設(shè)備清單
- —橋梁專業(yè)施工圖設(shè)計(jì)審查要(終)
評(píng)論
0/150
提交評(píng)論