贪心磁盘存储问题
来源:互联网 发布:沉迷网络的事例 编辑:程序博客网 时间:2024/05/12 17:00
#include<iostream>
using namespace std;
//每个文件占一个磁道,检索概率分别p1,p2...pn,且和为1
//使期望检索时间最小
//检索期望时间sum(pi*pj*d(i,j)),d(i,j)是第i道与第j道之间径向距离i-j绝对值
//按照概率值由大到小排序,大概率放置最中间middle位置,然后次大分别放在中间左右位置
//依次排下,再将对应数值按概率顺序排入
//void greedysearch(int n,double *p,int&x)
//{
// //p为概率,x作为文件排列结果
// int k[];
// int r,l;
// //将p[]按非递增序列排列p[k[1]]>=p[k[2]]...>=p[k[n]]
// //这里k1,k2是1,2...n的某一排列
// x[n/2]=k[1];
// r=n/2+1;
// l=n/2-1;
// for(i=2;i<=n;i+=2)
// {
// x[r]=k[i];
// r++;
// }
// for(i=3;i<=n;i+=2)
// {
// x[l]=k[i];
// l--;
// }
//}
#include<stdio.h>
#include<algorithm>
using namespace std;
int cmp(const void *a,const void *b)
{
return *(double*)a-*(double*)b;
}
double greedy(double a[],int n)
{
qsort(a,n,sizeof(double),cmp);
int mid=(n-1)/2;
double x[n];
x[mid]=a[n-1];
for(int i=mid+1;i<n;i++)
{
x[i]=a[n-2*(i-mid)];
}
for(int i=mid-1;i>=0;i--)
{
x[i]=a[n-2*(mid-i)-1];
}
double sum=0,exp=0;
for(int i=0;i<n;i++)
{
exp+=x[i]*x[j]*(j-i);
}
return exp/sum/sum;
}
int main()
{
int j,n;
double a[100],exp;
cin>>n;
for(int i=0;i,n;i++)
cin>>a[i];
exp=greedy(a,n);
cout<<exp<<endl;
}
using namespace std;
//每个文件占一个磁道,检索概率分别p1,p2...pn,且和为1
//使期望检索时间最小
//检索期望时间sum(pi*pj*d(i,j)),d(i,j)是第i道与第j道之间径向距离i-j绝对值
//按照概率值由大到小排序,大概率放置最中间middle位置,然后次大分别放在中间左右位置
//依次排下,再将对应数值按概率顺序排入
//void greedysearch(int n,double *p,int&x)
//{
// //p为概率,x作为文件排列结果
// int k[];
// int r,l;
// //将p[]按非递增序列排列p[k[1]]>=p[k[2]]...>=p[k[n]]
// //这里k1,k2是1,2...n的某一排列
// x[n/2]=k[1];
// r=n/2+1;
// l=n/2-1;
// for(i=2;i<=n;i+=2)
// {
// x[r]=k[i];
// r++;
// }
// for(i=3;i<=n;i+=2)
// {
// x[l]=k[i];
// l--;
// }
//}
#include<stdio.h>
#include<algorithm>
using namespace std;
int cmp(const void *a,const void *b)
{
return *(double*)a-*(double*)b;
}
double greedy(double a[],int n)
{
qsort(a,n,sizeof(double),cmp);
int mid=(n-1)/2;
double x[n];
x[mid]=a[n-1];
for(int i=mid+1;i<n;i++)
{
x[i]=a[n-2*(i-mid)];
}
for(int i=mid-1;i>=0;i--)
{
x[i]=a[n-2*(mid-i)-1];
}
double sum=0,exp=0;
for(int i=0;i<n;i++)
{
exp+=x[i]*x[j]*(j-i);
}
return exp/sum/sum;
}
int main()
{
int j,n;
double a[100],exp;
cin>>n;
for(int i=0;i,n;i++)
cin>>a[i];
exp=greedy(a,n);
cout<<exp<<endl;
}
3 0
- 贪心磁盘存储问题
- 贪心算法☞磁盘文件最优存储问题
- 贪心算法作业之磁带最优存储问题与磁盘文件最优存储问题
- 贪心算法解磁盘文件最优存储问题——算法解题报告
- 磁盘文件最优存储问题
- 磁盘文件最优存储问题
- 程序存储问题(贪心)
- hadoop存储hdfs磁盘余留问题
- 磁盘存储
- 贪心算法☞磁带最优存储问题
- 算法:(贪心算法)-程序存储问题
- 性能指标之资源指标-磁盘-存储问题定位
- 磁带的最优存储问题(贪心选择)
- 监控磁盘存储过程
- 磁盘存储原理
- 磁盘存储原理
- 存储磁盘性能评估
- 获取磁盘存储目录
- ID Codes
- HDU 1074Doing Homework(状态压缩dp)
- VC判断当前用户有无Administrator的权限
- FATAL: Could not read from boot medium. System halted.
- 人人都能成为黑客:不是游戏打不过小学生了,而是编码也不如小学生咯 !
- 贪心磁盘存储问题
- ORA-01506: missing or illegal database name
- ImageSwitcher的使用(一):与Gallery配合使用
- 恳请万能的高手追寻桂辉(500强(深圳)前高管-欠钱做老赖还危及他人人身安全)
- 第二题输入7个45随机数
- VC替换桌面IE图标[源码]
- 01背包、完全背包、多重背包
- 旋转字符串问题
- 0801