新的开始
凤凰博报 由你开始
http://justforfun.blog.ifeng.com
发表 管理 分类 简介 头像 功能 音乐 友情链接 模板 个性域名

2007-06-11 22:14:20 编辑 删除

浏览 745 次 | 评论 1 条

 

  又是贪心算法,嘿嘿,用贪心算法,其实我并不贪心。

  基本策略:总取作业完成时间最多的分配给已得作业量最少的计算机。

 typedef struct job

                {

                    int j;//作业编号

                    int t;//作业所需时间

                    int j;将分配给那第j台计算机

                  }

typedef struct computer

                      {

                         int i ;//计算机编号

                         int T;//工作时间

                        }

n //作业数量

m //计算机数量

t[i] //第i个作业所花时间

void  attemperjob(job T[],int n, computer J[], int m,int t[])

{

   for( i = 0 ; i < n; i++)//初始化工作

   {

    T[i].i = i ;

    T[i].t = t[i];

    }

    for( i = 0; i < m; i++)//初始化计算机

    {

     J[i].i = j;

     J[i].T = 0;

    }

    sort(T[],n)//把工作按时间大小排序

   for(i = 0; i < n ; i++)//这里是重点为N个作业分配计算机

   {

     T[i].j = J[1].i;//将工作量最小的分配给时间消耗最大的作业

     J[1].T += T[i].t//将刚分配的计算机所用时间加刚分配作业的时间

     Sort(J[],m)//最小堆排序

   }

}

 

  

   }}

 

0
上一篇 << 回朔算法      下一篇 >> 迭代算法求解八皇后问题
您还没有登录,请登录以后再发表评论。

关于博主

justforfun

海明威说-- “这个世界是美好的,值得我们为之奋斗” 我相信后半句...

博文相关