多台设备修理最优化问题

时间:2013-05-31 15:31:34
【文件属性】:

文件名称:多台设备修理最优化问题

文件大小: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


网友评论