算法设计与分析——贪心算法——多机调度问题

该类问题可以使用贪心策略可以设计出较好的近似算法(并不是最优解)

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;typedef struct Node
{int hour;//记录该作业的所需要完成的时间int number;//记录该作业在原来的序列的顺序
}node;
bool cmp(node x,node y)
{if(x.hour>y.hour)return true;elsereturn false;
}
void MultiMachine(Node node[], int machine_number, int *machine_operation, int *machine_time[],int job_number){int rear[job_number];//安排前机器数(机器的个数)个作业for (int i = 0; i < machine_number;i++){machine_time[i][0] = node[i].number;//将该作业放到二维数组中去rear[i] = 0;machine_operation[i] = node[i].hour;}cout<<"dsfdsjfklsdjflksdj";//安排剩余的job_number-machine_number个作业int i;int j;int k;for( i= machine_number;i<job_number;i++){for ( j = 0,k=1; k < machine_number;k++)//找到目前机器序列中使用时间最短的那台机器{if(machine_operation[j]>machine_operation[k]){j = k;}}rear[j]++;machine_time[j][rear[j]] = node[i].number;machine_operation[j] += node[i].hour;}for (int i = 0; i < machine_number;i++){cout << "机器" << i + 1 << "处理:";for (int j = 0; machine_time[i][j]>0;j++){cout << "作业" << machine_time[i][j] << " ";}cout << "机器" << i << "的处理时间" << machine_operation[i] << endl;}}
int main()
{cout << "输入待处理的作业个数:";int job_number;cin >> job_number;Node node[job_number];cout << "输入作业需要处理的时间:";for (int i = 0; i < job_number;i++){cin >> node[i].hour;node[i].number = i + 1;}cout << "输入机器的个数:";int machine_number;cin >> machine_number;sort(node, node + job_number, cmp);int machine_time[machine_number][job_number];//记录每个机器上作业的序号 int machine_operation[machine_number];//记录每个机器上已经的运行时间for (int i = 0; i < machine_number;i++){machine_operation[i] = 0;}MultiMachine(node, machine_number, machine_operation, (int**)machine_time, job_number);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在 C# 中使用 Dapper ORM

译文链接&#xff1a;https://www.infoworld.com/article/3025784/how-to-use-the-dapper-orm-in-c.html?nsdrtrue对象关系映射&#xff08;ORM&#xff09;这个概念已经存在很长时间了&#xff0c;ORM的作用就是用来解决 编程领域的 object model 和关系数据库中的 data mode…

从像素坐标到相机坐标_鱼眼相机模型EUCM(一)

前言相较于普通的针孔相机&#xff0c;鱼眼相机的能够观测到的范围更广&#xff0c;在一定程度上其实是可以增强视觉的鲁棒性的。针对于鱼眼相机的模型其实有挺多的&#xff0c;也有论文对这些模型进行了评测&#xff0c;但对于本人来说&#xff0c;最熟知的还是针孔模型&#…

GraphQL:简单开开始一个查询

GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述&#xff0c;使得客户端能够准确地获得它需要的数据&#xff0c;而且没有任何冗余&#xff0c;也让 API 更容易地随着时间推移而演进&#xff0c…

算法设计与分析——回溯法——批处理作业调度

问题描述&#xff1a;给定n个作业的集合{J1,J2,…,Jn}。每个作业必须先由机器1处理&#xff0c;然后由机器2处理。作业Ji需要机器j的处理时间为tji。对于一个确定的作业调度&#xff0c;设Fji是作业i在机器j上完成处理的时间。所有作业在机器2上完成处理的时间和称为该作业调度…

python输入日期计算天数_用python计算日期(1、返回指定日期所在的一周,2,计算一个日期的月份和天数加减)...

放两个小轮子吧&#xff0c;欢迎测试bug&#xff0c;然后告诉我&#xff1a;1、返回指定日期所在的一周2&#xff0c;计算一个日期的月份和天数加减# -*- coding: utf-8 -*-"""Created on Tue May 17 17:11:28 2016author: pcloth关于日期的计算轮子""…

探索.NET平台中的SIMD内在函数Vector

概述Vector&#xff08;向量&#xff09;是一种序列式容器&#xff0c;事实上和数组差不多&#xff0c;但它比数组更优越。一般来说数组不能动态拓展&#xff0c;因此在程序运行的时候不是浪费内存&#xff0c;就是造成越界。而Vector刚好弥补了这个缺陷&#xff0c;它的特征是…

算法设计与分析——回溯法——装载问题

0027算法笔记——【回溯法】回溯法与装载问题 自己写的代码&#xff1a; #include <iostream> using namespace std; template <class Type> class Loading {//friend Type MaxLoading(Type[],Type,int,int []);//private:public:void Backtrack(int i);int n, …

python功能函数_Python-功能函数的使用

Python中的函数提供了有组织的&#xff0c;可重用的代码来执行一组操作。函数简化了编码过程&#xff0c;防止冗余逻辑&#xff0c;并使代码更容易遵循。定义和调用简单函数使用def语句来定义Python中的函数最常见的方式。这种说法是所谓的单条复合语句的语法如下&#xff1a;d…

深入解析 C# 的 String.Create 方法

作者&#xff1a;Casey McQuillan译者&#xff1a;精致码农原文&#xff1a;http://dwz.win/YVW说明&#xff1a;原文比较长&#xff0c;翻译时精简了很多内容&#xff0c;对于不重要的细枝末节只用了一句话概括&#xff0c;但不并影响阅读。你还记得上一次一个无足轻重的细节点…

算法设计与分析——回溯法——n皇后问题

一、什么是N皇后问题&#xff1f; 在nn格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于再nn的棋盘上放置n个皇后&#xff0c;任何2个皇后不妨在同一行或同一列或同一斜线上。 问题…

全局程序集缓存gac中安装程序集_我就不信2W字把源码拆的这么碎,你还不明白mybatis缓存...

前言不知道大家看到这张图感觉怎么样&#xff0c;不是难&#xff0c;一共也没有几个组件&#xff0c;但是真的让我想当头疼&#xff0c;因为在面试的时候&#xff0c;就这张图&#xff0c;对&#xff0c;你没看错&#xff0c;就这几个组件&#xff0c;那是让我相当难受啊MyBati…

GraphQL:和EntityFramework更配哦

GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述&#xff0c;使得客户端能够准确地获得它需要的数据&#xff0c;而且没有任何冗余&#xff0c;也让 API 更容易地随着时间推移而演进&#xff0c…

算法设计与分析——回溯法——符号三角形问题

#include<iostream> using namespace std;class Triangle{public:void Backtrack(int t);int n;//第一行的符号个数 int half;//n*(n1)/4 int count;//当前—的个数 int **p;//符号三角形矩阵 long sum; //已找到的符号三角形数 };void Triangle::Backtrack(int t) {if(…

mysql 默认事务隔离级别_MySQL 事务隔离级别详解

个人公众号『码农札记』&#xff0c;欢迎关注&#xff0c;查看更多精彩文章。 简介&#xff1a; MySQL的事务隔离级别一共有四个&#xff0c;分别是读未提交、读已提交、可重复读以及可串行化。四个特性ACID原子性 &#xff08;Atomicity&#xff09;事务开始后所有操作&#x…

如何在 Asp.Net Core 中对请求进行限流

译文链接&#xff1a;https://www.infoworld.com/article/3442946/how-to-implement-rate-limiting-in-aspnet-core.html在应用程序开发时&#xff0c;或许你有这样的想法&#xff0c;控制用户的请求频率来防止一些用户的恶意攻击&#xff0c;具体的说就是&#xff1a;为了预防…

算法设计与分析——动态规划——石子合并问题

1.石子合并问题 在一个圆形操场的四周摆放着n堆石子。现要将石子有序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆&#xff0c;并将新的一堆石子数记为该次合并的得分。设计一个算法&#xff0c;计算出将n堆石子合并成一堆的最小得分和最大得分。 #include<st…

软件层面可以做到重启本地串口吗_手机关机还是重启好?get这几招,手机更流畅...

遇到手机卡顿&#xff0c;很多人都会不自觉的选择重启手机&#xff0c;还是不行&#xff0c;就关机等一会儿再开机&#xff0c;这样几次下来手机真的就顺畅多了。那么关机和重启到底有什么区别&#xff1f;还有哪些方法可以保持手机流畅&#xff1f;跟着小编来了解一下&#xf…

在传统行业做数字化转型之团队篇

【数字化转型】| 作者 / Edison Zhou这是EdisonTalk的第309篇原创内容在过去的两年时间里&#xff0c;我加入了一家传统行业的企业参与其数字化转型的过程&#xff0c;现在我将我的经历分享出来&#xff0c;本文是第四部分—团队篇&#xff0c;主要会介绍一下我所在的经济适用型…

python opengl_Python环境搭建之OpenGL

以下内容为我python OpenGl 环境搭建历程&#xff1a;win7 64位操作系统&#xff0c;python3.5.3 &#xff0c;无其他相关。直接cmd或PowerShell输入以下命令&#xff1a;pip install PyOpenGL PyOpenGL_accelerate安装失败&#xff0c;提示需安装Microsoft Visual C 14.0&…

回顾 | 进击吧! Blazor!系列

Blazor 是一个 Web UI 框架&#xff0c;可通过 WebAssembly 在任意浏览器中运行 .Net 。Blazor 旨在简化快速的单页面 .Net 浏览器应用的构建过程&#xff0c;它虽然使用了诸如 CSS 和 HTML 之类的 Web 技术&#xff0c;但它使用 C&#xff03;语言和 Razor 语法代替 JavaScrip…