📄 郑凌-4.5分.txt
字号:
//计算程序的最优存储方案
#include <iostream>
#include <fstream>
using namespace std;
float MinTime(int, float*, float*);
float MinTime(int n, float *l, float *p)
{
int i, j;
float a=0, b=0, *t;
t=new float[n]; //分配空间
for (i=0;i<n;i++)
{
a=a+p[i]; //计算概率和
}
for (i=0;i<n;i++)
{
p[i]=p[i]/a; //存放i个程序的读取概率
t[i]=l[i]*p[i]; //存放i个程序的l[i]*p[i]的积
}
a=0;
for (i=0;i<n;i++) //按照贪心算法的原则,把l[i]*p[i]的值按从小到大的顺序排列
{
for (j=i+1;j<n;j++)
{
if (t[i]>t[j])
{
a=t[i];
t[i]=t[j];
t[j]=a;
}
}
}
b=0;
for (i=0;i<n;i++)
{
a=0;
for (j=0;j<=i;j++)
{
a=a+t[j]; //计算读取第i个程序所需要的时间
}
b=b+a; //计算n个程序的平均读取时间
}
delete[] t;
return b;
}
int main()
{
int n, i;
float *l,*p;
ifstream in("input.txt"); //打开输入文件input.txt
if (in.fail())
{
cout<<"the input.txt is not exist!";
exit(1);
}
in>>n;
l=new float[n];
p=new float[n];
for (i=0;i<n;i++)
{
in>>l[i]>>p[i];
}
ofstream out("output.txt"); //创建输出文件output.txt
out<<MinTime(n,l,p); //输出结果
return 1;
//删除动态数组
delete[] p;
delete[] l;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -