設磁碟上有n個檔案f1,f2,…,fn,每個檔案占用磁碟上的1個磁軌。這n個檔案的檢索概率分別是p1,p2,…,pn,且 =1。磁頭從當前磁軌移到被檢資訊磁軌所需的時間可用這2個磁軌之間的徑向距離來度量。如果檔案fi存放在第i道上,1≦i≦n,則檢索這n個檔案的期望時間是對於所有的i
要求:輸入:第1行是正整數n,表示檔案個數。第2行有n個正整數ai,表示檔案的檢索概率。
輸出:計算出的最小期望檢索時間。
思路:
先將n個檔案按訪問概率從大到小排序,概率最大的應該放中間,次大的和次次大的放最大的兩邊,再小一點的再放在次大的左邊和次次大的右邊
具體演算法:
將檔案按概率排序後,用乙個新的陣列代表各檔案存放位置,先確定mid值,再依次確定mid兩邊,mid兩邊的兩邊的各檔案,不斷的迴圈,最後各檔案就再新的陣列裡放好了位置
c++**
#include
#include
int cmp (const
void *a , const
void *b)
double greedy(double a,int n)
return exp/sum/sum;
}
int main()
磁碟最優儲存問題 貪心演算法
設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是li,1 i n。這n 個程式的讀取概率分別是p1,p2,pn,且pi p2 pn 1。如果將這n 個程式按 i1,i2,in 的次序存放,則讀取程式ir 所需的時間tr c pi1 li2 pi2 li2 pir lir 這n 個程...
磁碟最優儲存問題 貪心演算法
設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是li,1 i n。這n 個程式的讀取概率分別是p1,p2,pn,且pi p2 pn 1。如果將這n 個程式按 i1,i2,in 的次序存放,則讀取程式ir 所需的時間tr c pi1 li2 pi2 li2 pir lir 這n 個程...
用貪心演算法求最優解
題目 有 m 元錢,n 種物品 每種物品有 j 磅,總價值 f 元,可以 使用 0 到 f 的任意 購買相應磅的物品,例如使用 0.3f 元,可以購買 0.3j 磅物 品。要求輸出用 m 元錢最多能買到多少磅物品 演算法思想 每次都買價效比最高的產品,價效比的計算公式為 重量 價效比的含義為用最少的...