贪心算法——作业调度

简介: 贪心算法——作业调度

算法思想:长作业优先,先把作业分配给每台处理机,剩下的优先分配给先空闲的处理机。

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
struct job {
  int id;
  int costtime;
};
bool cmp(job a, job b) {
  return a.costtime > b.costtime;
}
int Greedy(vector<job> &j, int m) {
  int totle=0;//总花费时间
  vector <int>q(m, 0);
  sort(j.begin(),j.end(),cmp);
  //将作业按从大到小排列
  for (int i = 0; i < m; i++) {
    q[i] += j[i].costtime;
  }//将作业分配给所有空闲处理机
  for (int i = m; i <j.size(); i++) {
    int minPosition = min_element(q.begin(), q.end()) - q.begin();
    q[minPosition]+= j[i].costtime;
  }//将剩下作业分配给最先空闲的处理机
  totle = *max_element(q.begin(), q.end());
  return totle;
}
int main() {
  //输入作业数量
  int n;
  cin >> n;
  vector<job> j;
  for (int i = 0; i < n; i++) {
    job j1;
    j1.id = i;
    cin >> j1.costtime;
    j.push_back(j1);
  }
  cout<<Greedy(j, 3);
}
相关文章
|
3天前
|
数据采集 算法 机器人
软件体系结构 - 调度算法(3) 单调速率调度算法
【4月更文挑战第19天】软件体系结构 - 调度算法(3) 单调速率调度算法
29 0
|
3天前
|
算法 Linux 数据处理
《操作系统》—— 处理机调度算法
《操作系统》—— 处理机调度算法
|
3天前
|
算法 调度
详解操作系统四大常用的作业调度算法(FCFS丨SJF丨HRRN丨RR)
详解操作系统四大常用的作业调度算法(FCFS丨SJF丨HRRN丨RR)
1064 0
|
3天前
|
监控 算法 机器人
软件体系结构 - 调度算法(2) 最低松弛度优先
【4月更文挑战第19天】软件体系结构 - 调度算法(2) 最低松弛度优先
28 0
|
3天前
|
监控 算法 自动驾驶
软件体系结构 - 调度算法(1) 最早截至时间优先
【4月更文挑战第19天】软件体系结构 - 调度算法(1) 最早截至时间优先
31 0
|
2天前
|
存储 移动开发 算法
磁盘调度算法
磁盘调度算法
11 2
|
2天前
|
算法 调度 UED
作业调度算法(含详细计算过程)和进程调度算法浅析
作业调度算法(含详细计算过程)和进程调度算法浅析
31 1
作业调度算法(含详细计算过程)和进程调度算法浅析
|
3天前
|
算法 调度
考虑需求响应的微网优化调度模型【粒子群算法】【matlab】
考虑需求响应的微网优化调度模型【粒子群算法】【matlab】
|
3天前
|
算法 调度
【问题探讨】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究
【问题探讨】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究
|
3天前
|
算法 Serverless 调度
基于分布式ADMM算法的考虑碳排放交易的电力系统优化调度研究(matlab代码)
基于分布式ADMM算法的考虑碳排放交易的电力系统优化调度研究(matlab代码)