回溯法排列树-最佳调度(最短时间完成)

宝宝怀着无比激动的心情写下这篇文章,,因为本人实在太 c a i 了。C++里类的成员函数在

类外面定义时忘记加上 " 类名 " + " : : "了。。。。。。可怜

问题描述:

假设有n个任务由k个可并行工作的机器完成。完成任务i 需要的时为Ti 。试设计一个算法找出完成这n个任务的最佳调度,使完成全部任务的时间最早。

算法设计:

对于给定的整数n和k,以及完成任务i需要的时间Ti ,i=1~n。计算完成这n个任务的最佳调度。


这个问题用回溯法解决,一般来说回溯法都有一个“解空间树”。

先提示一下是一棵深度为N的k叉树。

#include <iostream>

using namespace std;

const int N=7;
const int k=3;
//假设有 N=7 个任务由 k=3 个机器并行完成

class BestCharge
{

    friend int mBCharge(int *);
private:

    int *len;     //机器时间序列

//    int N,    //任务数
//        k,    //机器数
    int   best;          //最短时间
    int   *t;               //任务的时间
    int   *x;               //当前路径 x[N]
    int   *bestx;       
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值