最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++貪心算法處理多機調(diào)度問題詳解

 更新時間:2022年06月30日 09:25:56   作者:成就一億技術(shù)人  
貪心算法(又稱貪婪算法)是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優(yōu)上加以考慮,他所做出的僅是在某種意義上的局部最優(yōu)解

多機調(diào)度問題思路

1、把作業(yè)按加工所用的時間從大到小排序

2、如果作業(yè)數(shù)目比機器的數(shù)目少或相等,則直接把作業(yè)分配下去

3、 如果作業(yè)數(shù)目比機器的數(shù)目多,則每臺機器上先分配一個作業(yè),如下的作業(yè)分配時,是選那個表頭上 s 最小的鏈表加入新作業(yè)

可以考慮以下的貪心策略:

(1)最長處理時間作業(yè)優(yōu)先的貪心選擇策略。

(2)最短處理時間作業(yè)優(yōu)先的貪心選擇策略。

(3)作業(yè)到達時間優(yōu)先的貪心選擇策略。

*貪?策略:優(yōu)先處理花費時間長的任務(wù),這樣可以減少短任務(wù)的等待時間.

問題描述

形式:有n個任務(wù),m臺機器,n>m,每個作業(yè)i可以選擇?臺設(shè)備進?加?,加?時間為ti,每臺機器同時只能加??個作業(yè),且不可中斷。實現(xiàn)作業(yè)調(diào)度,使得n個作業(yè)的等待時間最短。

假定有7個獨立作業(yè),所需處理時間分別為{2,14,4,16,6,5,3},由三臺機器M1,M2,M3加工。按照貪心算法產(chǎn)生的作業(yè)調(diào)度如下圖所示,所需總加工時間為17.

代碼實現(xiàn)【C++】

#include<iostream> 
using namespace std;
#define N 7 
#define M 3 
int s[M] = { 0, 0, 0 };
//求出目前處理作業(yè)的時間和 最小的機器號 
int min(int m){
int min = 0;
int i;
for (i = 1; i<m; i++){
if (s[min]>s[i]){
min = i;
}
}
return min;
}
//求最終結(jié)果(最長處理時間) 
int max(int s[], int num){
int max = s[0];
for (int i = 1; i<num; i++){
if (max<s[i])
max = s[i];
}
return max;
}
//機器數(shù)大于待分配作業(yè)數(shù) 
int setwork1(int t[], int n){
int i = 0;
for (; i<n; i++){
s[i] = t[i];
}
int ma = max(s, N);
return ma;
}
//機器數(shù)小于待分配作業(yè)數(shù) 
int setwork2(int t[], int n){
int i;
int mi = 0;
for (i = 0; i<n; i++){
mi = min(M);
cout << "接下來由" << mi+1 << "號機器處理任務(wù)" << i + 1 << endl;
s[mi] = s[mi] + t[i];
}
int ma = max(s, M);
return ma;
}
void main()  //DEV中是int,vc++6.0中是void
{
	int time[N] = { 16, 14, 6, 5, 4, 3, 2 };//處理時間按從大到小排序 
	int maxtime;
	if (M >= N)
		maxtime = setwork1(time, N);
	else
		maxtime = setwork2(time, N);
	cout << "最多耗費時間" << maxtime << endl;
}

結(jié)果

到此這篇關(guān)于C++貪心算法處理多機調(diào)度問題詳解的文章就介紹到這了,更多相關(guān)C++多機調(diào)度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++中I/O模型之select模型實例

    C++中I/O模型之select模型實例

    這篇文章主要介紹了C++中I/O模型的select模型,實例講述了I/O模型的用法,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-10-10
  • 解決C++中事件不響應(yīng)的方法詳解

    解決C++中事件不響應(yīng)的方法詳解

    本篇文章是對C++事件不響應(yīng)的解決方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++?指針常量和常量指針的區(qū)別小結(jié)

    C++?指針常量和常量指針的區(qū)別小結(jié)

    在C++學習使用過程中,每個人都不可避免地使用指針,而且都或多或少的接觸過常量指針或指針常量,本文主要介紹了C++?指針常量和常量指針的區(qū)別小結(jié),感興趣的可以了解一下
    2023-12-12
  • c++中typename和class的區(qū)別介紹

    c++中typename和class的區(qū)別介紹

    在c++Template中,很多地方都用到了typename與class這兩個關(guān)鍵字,而且好像可以替換,是不是這兩個關(guān)鍵字完全一樣呢?
    2013-03-03
  • C++?LeetCode0538二叉搜索樹轉(zhuǎn)換累加樹示例

    C++?LeetCode0538二叉搜索樹轉(zhuǎn)換累加樹示例

    這篇文章主要為大家介紹了C++?LeetCode0538二叉搜索樹轉(zhuǎn)換累加樹示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • c++使用regex報錯regex_error兩種解決方案

    c++使用regex報錯regex_error兩種解決方案

    C++正則表達式是一個非常強大和實用的工具,但是使用它們時需要注意仔細檢查代碼是否符合語法規(guī)則,這篇文章主要給大家介紹了關(guān)于c++使用regex報錯regex_error的兩種解決方案,需要的朋友可以參考下
    2024-03-03
  • c++入門必學庫函數(shù)sort的基本用法

    c++入門必學庫函數(shù)sort的基本用法

    Sort函數(shù)包含在頭文件為#include<algorithm>的c++標準庫中,調(diào)用標準庫里的排序方法可以不必知道其內(nèi)部是如何實現(xiàn)的,只要出現(xiàn)我們想要的結(jié)果即可,下面這篇文章主要給大家介紹了關(guān)于c++入門必學庫函數(shù)sort的基本用法,需要的朋友可以參考下
    2022-11-11
  • C++連接mysql數(shù)據(jù)庫的兩種方法小結(jié)

    C++連接mysql數(shù)據(jù)庫的兩種方法小結(jié)

    這篇文章主要介紹了C++連接mysql數(shù)據(jù)庫的兩種方法小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • C++ 中的Swap函數(shù)寫法匯總

    C++ 中的Swap函數(shù)寫法匯總

    這篇文章主要介紹了C++ 中的Swap函數(shù)寫法匯總,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • C++中Boost的智能指針scoped_ptr

    C++中Boost的智能指針scoped_ptr

    這篇文章介紹了C++中Boost的智能指針scoped_ptr,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07

最新評論

凯里市| 滦平县| 内江市| 文安县| 泽州县| 抚宁县| 伊川县| 杭州市| 西乌珠穆沁旗| 襄汾县| 溧阳市| 朝阳市| 潞西市| 延庆县| 施甸县| 宜春市| 顺义区| 康保县| 万全县| 阿鲁科尔沁旗| 凤冈县| 大冶市| 甘肃省| 永川市| 安庆市| 额尔古纳市| 潜山县| 巴楚县| 株洲县| 黑龙江省| 阿克陶县| 景洪市| 阿荣旗| 当阳市| 河津市| 丰城市| 渝北区| 河南省| 军事| 调兵山市| 从化市|