第四章實驗作業
阿新 • • 發佈:2018-12-02
復雜度分析 進行 一個 其它 貪心算法 可能 分析 strong 設有
-
實踐題目
設有n個程序{1,2,…, n }要存放在長度為L的磁帶上。程序i存放在磁帶上的長度是 li,1≤i≤n。 程序存儲問題要求確定這n 個程序在磁帶上的一個存儲方案, 使得能夠在磁帶上存儲盡可能多的程序。 對於給定的n個程序存放在磁帶上的長度,計算磁帶上最多可以存儲的程序數。
-
問題描述
每次都從最小的開始加入,顯然可以求出最終的值,我們對題目進行貪心求解。
-
算法描述
滿足貪心算法,對程序長度從小到大排序,每次選擇最短的程序存放在磁帶上,直到已經放了的程序長度總和是小於或者等於L的最大值,以此找出最終的程序數。
sort(a, a+n); for(int i = 0; i<n; i++){ sum = sum+a[i]; if(sum>n){ break; } count++; }
-
算法時間及空間復雜度分析(要有分析過程)
空間復雜度為O(1),沒有開辟其它的輔助空間。
時間復雜度為O(n),排序時間為n,放程序到磁帶的時間為n,所以時間復雜度為O(n);
-
心得體會(對本次實踐收獲及疑惑進行總結)
這一題不是很難,主要是對貪心的基本操作和應用,兩個人思路不約而同。
第四章實驗作業