【文件属性】:
文件名称:多台设备修理最优化问题
文件大小:405B
文件格式:TXT
更新时间:2013-05-31 15:31:34
最优
3、多处最优服务次序问题:设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti,1<=i<=n。共有s处可以提供此项服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n个顾客等待服务时间的总和除以n。
(输入的数据要求从文件input.txt中读到程序中,输出结果要求写入文件output.txt中。)
法一:
#include
#include
using namespace std;
void CountingSort(int t[],int n,int r[],int e,int q[])
{
int i; //计数排序
for( i=0;i0;i--)//将顾客等待时间从小到大排列
{
r[q[t[i-1]]-1]=t[i-1];
q[t[i-1]]-=1;
}
}
void main()
{
int i=0,sum=0,n,max=0,u;//n为顾客个数
float vt,p;
ifstream in("input.txt");
if(in.fail())
{
cout<<"input error!"<>n;
//new是给指针r分配n长度的空间,设置动态数组r,m,两个数组大小相同
int *r=new int[n];
int *t=new int[n];
for(i=0;i>t[i];//从文本给等待时间t[i]数组赋值
for(i=0;i
#include
#include
using namespace std;
ifstream in("input.txt");
ofstream out("output.txt");
int Max(int a[],int n)
{
int pos=0;
for(int i=0;i1;size--)
{
int j=Max(a,size);
Swap(a[j],a[size-1]);
}
}
int Partition(int a[],int p,int r)
{
int i=p,j=r+1,x=a[p];
while(true)
{
while(a[++i]x);
if(i>=j)break;
Swap(a[i],a[j]);
}
a[p]=a[j];
a[j]=x;
return j;
}
void Quicksort(int a[],int p,int r)
{
if(r-p<=9)
Selectsort(&a[p],r-p+1);
else if(p>n;
int *a=new int [n];
for(int i=0;i>a[i];
}
//文件尾:
Quicksort(a,0,n-1);
double num=0;
for(i=0;i