演算法第四章《貪心策略》上機實踐報告

2022-09-10 02:33:15 字數 885 閱讀 9309

一.實踐題目名稱

程式儲存問題

二.問題描述

三.演算法描述(使用什麼貪心策略)

輸入資料後,用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個程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。輸入格式 第一行...