(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 定...