一.實踐題目名稱
程式儲存問題
二.問題描述
三.演算法描述(使用什麼貪心策略)
輸入資料後,用sort函式從小到大進行排列,l表示還剩下長度,sum表示放入的個數,然後從第乙個數開始對比,如果小於l就可以將其放入,並將sum++,最後輸出sum
#include
#include
using namespace std;
int main()
;for(int i = 0;i < n;i++)
cin >> s[i];
sort(s,s+n);
int sum = 0;
for(int i = 0;i< n;i++)
else
}cout << sum;}
四.演算法時間及空間複雜度分析
時間複雜度:乙個for迴圈完成陣列的遍歷與對比,時間複雜度為o(n)。
空間複雜度:演算法只使用了普通變數sum記錄放入的個數,空間複雜度為o(1)。
五.心得體會(對本次實踐收穫及疑惑進行總結)
像這道題一樣,我們需要找到乙個貪心方案就可以輕鬆解決,而且在貪心演算法這一章裡面,經常會用到的就是sort函式進行排序,有些sort函式可以由我們自己進行編寫。
六.對貪心演算法的理解和體會
1)貪心演算法最重要的是貪心選擇性質和最優子結構性質。
2)貪心演算法雖然可以很接近最優解,但貪心演算法不是萬能的,很多條件下或許是不適用的,但我們在做題的時候可以先用貪心演算法試一下,如果達不到最優解的話可以改變策略,用動態規劃法等方法進行問題的解決。
演算法第四章上機實踐報告
1.實踐題目 4 1 程式儲存問題 設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是 li,1 i n。程式儲存問題要求確定這n 個程式在磁帶上的乙個儲存方案,使得能夠在磁帶上儲存盡可能多的程式。對於給定的n個程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。2.問題描述 在...
演算法第四章上機實踐報告
引論 相比與動態規劃演算法,貪心演算法是比較容易理解的,其思想就在於得到當前狀態下區域性最好選擇,當乙個問題的最優解包含其子問題的最優解時,即每個貪心選擇都是子問題的最優解,那麼就能的到該問題的最優解了。本次上機實踐的題目雖然不是特別難,但相比前兩次,這一次上機實踐的效率遠低於上兩次,因為在實踐的時...
第四章演算法上機實踐報告
第四章演算法上機實踐報告 實踐題目 設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是 li,1 i n。程式儲存問題要求確定這n 個程式在磁帶上的乙個儲存方案,使得能夠在磁帶上儲存盡可能多的程式。對於給定的n個程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。輸入格式 第一行...