貪心演算法 最優裝載問題

2021-08-29 09:35:24 字數 472 閱讀 9009

(1)資料結構定義 

double w[n]; //一維陣列儲存古董的重量 

(2)按重量排序 

sort(w, w+n); //按古董重量公升序排序 

(3)按照貪心策略找最優解 

首先用變數 ans 記錄已經裝載的古董個數, tmp 代表裝載到船上的古董的重量,兩個變 

量都初始化為 0。然後按照重量從小到大排序,依次檢查每個古董, tmp 加上該古董的重量, 

如果小於等於載重量 c,則令 ans ++;否則,退出。

(1)時間複雜度:首先需要按古董重量排序,呼叫 sort 函式,其平均時間複雜度為 o(nlogn), 

輸入和貪心策略求解的兩個 for 語句時間複雜度均為 o(n),因此時間複雜度為 o(n + nlog(n))。 

(2)空間複雜度:程式中變數 tmp、 ans 等占用了一些輔助空間,這些輔助空間都是常 

數階的,因此空間複雜度為 o(1)。

貪心演算法 最優裝載

貪心演算法思想 不從整體最優上加以考慮,它所做出的選擇只是在某種意義上的區域性最優選擇,當然希望貪心演算法得到的最終結果也是整體最優的 貪心演算法性質 指所求問題的整體最優解可以通過一系列區域性最優的選擇,即貪心選擇來達到 1 問題描述 有一批貨櫃要裝上一艘載重量為 tatol 的輪船,其中貨櫃 i...

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

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

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

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