新的开始
凤凰博报 由你开始

多机调度问题

发表于 2007-06-11 22:14:20

 

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

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

 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)//最小堆排序

   }

}

 

  

   }}

 

分享 浏览(589) 评论(1)
上一篇 << 回朔算法      下一篇 >> 迭代算法求解八皇后问题

近期评论 添加评论    早期相关评论

  • 凤凰网友 发布于 2008-06-04 19:37:40

    212.

登录以后再发表评论。

关于博主

justforfun

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

加为好友

给博主留言    查看留言

文章列表

文章分类

最近发布