《演算法設計與分析》 第四章上機實踐報告

2022-06-21 20:24:10 字數 957 閱讀 7371

設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是 li,1≤i≤n。 程式儲存問題要求確定這n 個程式在磁帶上的乙個儲存方案, 使得能夠在磁帶上儲存盡可能多的程式。 對於給定的n個程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。

第一行是2 個正整數,分別表示檔案個數n和磁帶的長度l。接下來的1行中,有n個正整數,表示程式存放在磁帶上的長度。

輸出最多可以儲存的程式數。

在這裡給出一組輸入。例如:

6 50 

2 3 13 8 80 20

在這裡給出相應的輸出。例如:

5
演算法描述先對程式進行從小到大排序,然後依次放入磁帶直到放不下。

證明:假設最優解有,而x1 < x2,那麼把x2換成x1組成的解,放入的程式數不變而且也滿足題意,所以也是一組最優解,該演算法即貪心演算法正確。

以下是ac**

#include #include 

using

namespace

std;

intmain()

cout

<

return0;

}

view code

演算法時間及空間複雜度分析

時間複雜度:排序o(nlogn),判斷程式能否放入磁帶o(n),所以時間複雜度為o(nlogn)

空間複雜度:開了乙個變數記錄已放程式的總空間,空間複雜度為o(1)。

心得體會

我覺得第一題的並不是很難,就是啟發式演算法想一下就ok,不過要注意細節上的問題,如陣列越界,永真迴圈等問題。還要自己的思維鍛鍊也很重要,貪心演算法也需要自己證明出來的。

多打**

python第四章上機實踐 第四章上機實踐報告

設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是 li,1 i n。程式儲存問題要求確定這n 個程式在磁帶上的乙個儲存方案,使得能夠在磁帶上儲存盡可能多的程式。對於給定的n個程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。輸入格式 第一行是2 個正整數,分別表示檔案個數n和...

演算法第四章上機實踐報告

1.實踐題目 4 1 程式儲存問題 設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是 li,1 i n。程式儲存問題要求確定這n 個程式在磁帶上的乙個儲存方案,使得能夠在磁帶上儲存盡可能多的程式。對於給定的n個程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。2.問題描述 在...

演算法第四章上機實踐報告

引論 相比與動態規劃演算法,貪心演算法是比較容易理解的,其思想就在於得到當前狀態下區域性最好選擇,當乙個問題的最優解包含其子問題的最優解時,即每個貪心選擇都是子問題的最優解,那麼就能的到該問題的最優解了。本次上機實踐的題目雖然不是特別難,但相比前兩次,這一次上機實踐的效率遠低於上兩次,因為在實踐的時...