⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 郑凌-4.5分.txt

📁 这是很不错的计算机算法
💻 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 + -