91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2022-02-20
  • 語言: 其他
  • 標簽:

資源簡介

任務調度問題就是給定一個有窮單位時間任務的集合S,集合S中的每個任務都有一個截止期限di和超時懲罰wi,需要找出集合S的一個調度,使得因任務誤期所導致的總懲罰最小,這個調度也稱為S的一個最優調度。

資源截圖

代碼片段和文件信息

#include?
#include?

void?swap(int?*x?int?*y)
{
????int?temp;
????temp?=?*x;
????*x?=?*y;
????*y?=?temp;
}
/*任務調度算法滿足擬陣性質,利用GREEDY貪心策略*/
/*期限序列d[]?d1d2……dn*/
/*懲罰序列w[]?w1w2……wn*/
/*任務個數n*/
void?taskSchedule(int?*d?int?*w?int?n)
{
????int?i?=?0;
????int?j?=?0;
????int?k?=?1;????????????????????????????????????//用于指示數組a[]
????int?s?=?0;
????int?t?=?1;????????????????????????????????????//用于指示數組b[]
????int?a[n+1];?????????????????????????????????//存放任務調度序列
????int?b[n+1];????????????????????????????????//存放在貪心選擇中未被選的任務序列
????int?sn[n+1];???????????????????????????????//存放懲罰遞減序列編號
????int?flag?=?0;???????????????????????????????//0表示當前集合滿足獨立性,1表示不滿足獨立性
????int?count?=?0;???????????????????????????//表示任務序列中期限為t或更早的任務個數
????memset(a?0?sizeof(a));
????memset(b?0?sizeof(b));
????for(i?=?0;?i?<=?n;?i++)
????{
????????sn[i]?=?i;
????}
????//按照懲罰遞減排序?sn[]存放排序后的任務編號
????for(i?=?1;?i?????{
????????for(j?=?i?+?1;?j?<=?n;?j++)
????????{
????????????if(w[sn[i]]?<=?w[sn[j]])
????????????{
????????????????swap(&sn[i]?&sn[j]);
????????????}
????????}
?????}
?????k?=?1;
?????//for(i=1;i<=n;i++)?printf(“%d??“w[sn[i]]);
?????//將最小化遲任務的懲罰之和轉化為最大化早任務的懲罰之和,即盡量讓具有大懲罰的任務在期限內完成。
?????//a[]存放已選擇的任務序列,b[]存放未被選擇的任務序列
?????for(i?=?1;?i?<=?n;?i++)
?????{
?????????//嘗試加入任務,判斷獨立性
?????????flag?=?0;
?????????a[k]?=?sn[i];
?????????for(j?=?1;?j?<=?k;?j++)//表示當前的t
?????????{
?????????????count?=?0;
?????????????for(s?=?1;?s?<=?k;?s++)//求當前序列a[]中期限<=t的任務個數
?????????????{
?????????????????if(d[a[s]]?<=?j)?count++;
?????????????}
?????????????if(count?>?j)
?????????????{
?????????????????flag?=?1;
?????????????????break;
?????????????}
?????????}
?????????if(flag?==?1)//表示加入任務后,集合不具有獨立性,即在期限t需完成的任務>t
?????????{
?????????????b[t]?=?sn[i];
?????????????a[k]?=?0;
?????????????t++;
?????????}
?????????else
?????????{
?????????????k++;
?????????}
?????}
?????//消除最后的無效編號
?????if(b[t]?==?0)?t--;
?

評論

共有 條評論

相關資源