最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

python實(shí)現(xiàn)短作業(yè)優(yōu)先算法

2023-05-10 21:48 作者:真是累的很啊  | 我要投稿

由于是靜態(tài)輸入,一次性輸入所有程序,所以該代碼是不能實(shí)際應(yīng)用的,肯定需要一些更改 上一篇文章說了程序調(diào)度算法的核心是排序,先來先調(diào)度算法排序很簡單,只需要按到達(dá)時間這一個參數(shù)排序就行,但短作業(yè)優(yōu)先相對就比較麻煩,因?yàn)榇_定下一個可運(yùn)行的程序是在上一個程序運(yùn)行完成的時候,在此之前是不能確定的,因?yàn)榭赡軙衅渌麅?yōu)先級更高的程序到來,所以具體的確定方式一定要聯(lián)系上一個程序的到達(dá)時間、運(yùn)行時間和在此程序運(yùn)行期間內(nèi)又到達(dá)的新程序和之前以及與上一個程序爭奪cpu的程序的運(yùn)行時間 初級想法是,首先選擇第一個運(yùn)行的程序,在第一個程序運(yùn)行完成后,將所有到達(dá)的程序進(jìn)行按運(yùn)行時間排序,取最小的一個,然后在原列表中刪去改程序,如此循環(huán)直到程序全部運(yùn)行完畢,代碼如下 time=0 def select_program(list_after,time): ??list_select=[i for i in list_after if i[1]<=time] ??while not list_select: ????time +=1 ????list_select=[i for i in list_after if i[1]<=time] ??program=sorted(list_select,key=lambda x:x[2])[0] ??list_after.remove(program) ??time+=program[2] ??return program,list_after,time list_sorted=[] while (len(list_all)): ??program,list_all,time=select_program(list_all,time) ??list_sorted.append(program) 該函數(shù)就是用來選擇上cpu的程序的,用列表把每次運(yùn)行的結(jié)果保存起來,最后該列表就是實(shí)際運(yùn)行順序 未簡化代碼如下 n=int(input()) list_name=input().split() list_time=list(map(int,input().split())) list_servicetime=list(map(int,input().split())) list_all=[] for i in range(n): ??list_all.append((list_name[i],list_time[i],list_servicetime[i])) time=0 def select_program(list_after,time): ??list_select=[i for i in list_after if i[1]<=time] ??while not list_select: ????time +=1 ????list_select=[i for i in list_after if i[1]<=time] ??program=sorted(list_select,key=lambda x:x[2])[0] ??list_after.remove(program) ??time+=program[2] ??return program,list_after,time list_sorted=[] while (len(list_all)): ??program,list_all,time=select_program(list_all,time) ??list_sorted.append(program) # list_sorted=[('A', 0, 4), ('C', 2, 1), ('D', 3, 2), ('B', 1, 3), ('E', 4, 4)] time=list_sorted[0][1] for i in range(len(list_sorted)): ??if list_sorted[i][1]>time: ????completely_time=list_sorted[i][1]+list_sorted[i][2] ??else: ????completely_time=time+list_sorted[i][2] ??twist_time=completely_time-list_sorted[i][1] ??_twist_time=twist_time/list_sorted[i][2] ??list_sorted[i]=list_sorted[i]+(completely_time,twist_time,_twist_time) ??time=completely_time list_sorted=sorted(list_sorted,key=lambda x:x[1]) list_cname=['作 業(yè) 名:','到達(dá)時間:','服務(wù)時間:','完成時間:','周轉(zhuǎn)時間:','帶權(quán)周轉(zhuǎn)時間:'] for i in range(6): ??print(list_cname[i],end='') ??list_output=[] ??for j in range(n): ????if i==5: ??????list_output.append(f'{list_sorted[j][i]:.2f}') ??????continue ????list_output.append(list_sorted[j][i]) ??print(*list_output)

python實(shí)現(xiàn)短作業(yè)優(yōu)先算法的評論 (共 條)

分享到微博請遵守國家法律
蓬溪县| 西安市| 米脂县| 调兵山市| 新营市| 庆元县| 来宾市| 民丰县| 云龙县| 高青县| 邵武市| 隆安县| 武川县| 怀安县| 安远县| 天长市| 高密市| 玛纳斯县| 临海市| 利川市| 丹棱县| 临夏县| 柯坪县| 德江县| 北辰区| 额尔古纳市| 庆云县| 济南市| 景宁| 延边| 平安县| 聊城市| 徐州市| 河南省| 盐山县| 鄯善县| 清徐县| 黄大仙区| 淳化县| 黄平县| 同心县|