貪心演算法 最優裝載

2022-06-22 06:57:09 字數 974 閱讀 999

貪心演算法思想:不從整體最優上加以考慮,它所做出的選擇只是在某種意義上的區域性最優選擇,當然希望貪心演算法得到的最終結果也是整體最優的;

貪心演算法性質:指所求問題的整體最優解可以通過一系列區域性最優的選擇,即貪心選擇來達到;

(1)問題描述:有一批貨櫃要裝上一艘載重量為 tatol 的輪船,其中貨櫃 index 的重量為 weight。最優裝載問題要求在裝載體積不受限制的情況下,將盡可能多的貨櫃裝上輪船【目前只考慮乙個物品只有乙個】,store 陣列存放物品是否裝載 1:存放  0:不存放;

(2)最優裝載問題可用貪心演算法求解,採用重量最輕者先裝的貪心選擇策略,可產生最優裝載問題的最優解,演算法如下:

public

class

excellentloading

}/*** 按物品重量由小到大公升序排序,同時調整物品序號

*/private

static

void

weightsort() }}

}/*** 統計最優裝載

*/private

static

void

excellentloading()

}/*** 輸出函式

*/private

static

void

print()

public

static

void

main(string args)

}

(3)輸入輸出結果:

請輸入輪船的總重量:20請輸入要裝入的物品個數:6請輸入各物品的重量:14

8693輪船最大容量: total = 20,輪船剩餘容量: residuetotal = 6排序完物品陣列:

1 3 4 6 8 9物品存放陣列:

1 1 1 1 0 0

(4)總結:貪心演算法重在考慮區域性最優解,整體最優解即在眾多個區域性最優解中選擇乙個最優的解;

貪心演算法 最優裝載問題

1 資料結構定義 double w n 一維陣列儲存古董的重量 2 按重量排序 sort w,w n 按古董重量公升序排序 3 按照貪心策略找最優解 首先用變數 ans 記錄已經裝載的古董個數,tmp 代表裝載到船上的古董的重量,兩個變 量都初始化為 0。然後按照重量從小到大排序,依次檢查每個古董,...

簡單貪心演算法 最優裝載問題

不同的貨物型別有不同的重量,現在給我可以最大裝載量,請問最多可以裝載多少貨物。eg 輸入 不同貨物的型別和重量 輸出 最大的裝載量 1 首先,我們要解決不同貨物型別有不同的重量,這個明顯是乙個物件陣列,這個時候,我們就要進行相應的排序。從小到大 2 我們將排序好的貨物,進行新增到我們的裝載車上,要有...

貪心演算法 加勒比海盜 最優裝載問題

有一天,海盜們截獲了一艘裝滿各種各樣古董的貨船,每一件古董都價值連城,一旦打碎就失去了它的價值。雖然海盜船足夠大,但載重量為c,每件古董的重量為wi,海盜們該如何把盡可能多數量的寶貝裝上海盜船呢?include 呼叫sort函式的標頭檔案 includeusing namespace std c 定...