實踐題目:程式儲存問題
問題描述:設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是 li,1≤i≤n。 程式儲存問題要求確定這n 個程式在磁帶上的乙個儲存方案, 使得能夠在磁帶上儲存盡可能多的程式。 對於給定的n個程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。
第一行是2 個正整數,分別表示檔案個數n和磁帶的長度l。接下來的1行中,有n個正整數,表示程式存放在磁帶上的長度。
輸出最多可以儲存的程式數。
在這裡給出一組輸入。例如:
6 50
2 3 13 8 80 20
在這裡給出相應的輸出。例如:
5
演算法描述
1 #include2using
namespace
std;
3void swap(int a,int i,intj)8
9void bubble_sort(int a,int
len)17}
18}19}
2021
22int
main()
29bubble_sort(a,n);
30for(int i=0;i)35}
36 cout37return0;
38 }
演算法時間及空間複雜度分析(要有分析過程)該演算法的時間主要花費在氣泡排序上,時間複雜度為o(n^2),而空間複雜度方面,主要是由於呼叫了方法,而方法裡面又呼叫了另外乙個方法
心得體會(對本次實踐收穫及疑惑進行總結) 本次實踐主要是對貪心演算法的加深理解。在這道實踐題中,還涉及到氣泡排序,可見程式設計題除了考當前所學,還考察我們之前的知識。每一步都是下一步的基礎,因此我們更要把當前的學好。
演算法第5章實踐報告
實踐題目 工作分配問題 問題描述 7 2 工作分配問題 20 分 設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 設計乙個演算法,對於給定的工作費用,為每乙個人都分配1 件不同的工作,並使總費用達到最小。輸入資料的第一行有1 個正整數n 1 n 20 接下來的n行,每行n個數,表...
演算法第5章上機實踐報告
7 2 工作分配問題 20 分 設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 設計乙個演算法,對於給定的工作費用,為每乙個人都分配1 件不同的工作,並使總費用達到最小。輸入資料的第一行有1 個正整數n 1 n 20 接下來的n行,每行n個數,表示工作費用。將計算出的最小總費用輸...
作業系列 演算法第3章上機實踐報告
1.實踐題目 7 3編輯距離問題 2.問題描述 設a和b是2個字串。要用最少的字元操作將字串a轉換為字串b。這裡所說的字元操作包括 1 刪除乙個字元 2 插入乙個字元 3 將乙個字元改為另乙個字元。將字串a變換為字串b所用的最少字元運算元稱為字串a到 b的編輯距離,記為d a,b 對於給定的字串a和...