112年高考三級資料結構
一、某一公司有下圖所示的8個優先順序分別為高或低的待執行工作,且將依順序自 A 至 H 每間隔一天的時間放入對應的高優先執行佇列 (Queue) 或低優先執行佇列 (Queue),例如 A (低) 表示 A 工作將於第一天放入低優先執行佇列,而 C (高) 表示 C 工作將於第三天放入高優先執行佇列。此外,執行每個工作所需完成的時間均於工作名稱下顯示,例如執行 A 工作需要2天時間完成,而執行 B 工作需要1天時間完成。最後,各個工作的執行規則為,當高優先執行佇列內有工作待完成時,須優先執行該佇列內的工作 (由第一個開始執行),直到高優先執行佇列內沒有任何待完成工作時,方可執行低優先執行佇列內的工作 (由第一個開始執行)。 (一)試計算執行此8個工作需要多少天方可完成。(10分) (二)試計算此8個工作自放入佇列至開始執行的平均等待時間。(15分) |
答:
H (低) |
G (高) |
F (高) |
E (低) |
D (高) |
C (高) |
B (低) |
A (低) |
1 |
2 |
1 |
1 |
2 |
2 |
1 |
2 |
(一)
假設一天只能執行一個工作。
天數 |
到達工作 |
所需天數 |
高優先佇列 |
低優先佇列 |
第01天 |
A (低) |
2 |
|
A (執行) |
第02天 |
B (低) |
1 |
|
A (執行)、B (等待) |
第03天 |
C (高) |
2 |
C (執行) |
B (等待) |
第04天 |
D (高) |
2 |
C (執行)、D (等待) |
B (等待) |
第05天 |
E (低) |
1 |
D (執行) |
B (等待)、E (等待) |
第06天 |
F (高) |
1 |
D (執行)、F (等待) |
B (等待)、E (等待) |
第07天 |
G (高) |
2 |
F (執行)、G (等待) |
B (等待)、E (等待) |
第08天 |
H (低) |
1 |
G (執行) |
B (等待)、E (等待)、H (等待) |
第09天 |
|
|
G (執行) |
B (等待)、E (等待)、H (等待) |
第10天 |
|
|
|
B (執行)、E (等待)、H (等待) |
第11天 |
|
|
|
E (執行)、H (等待) |
第12天 |
|
|
|
H (執行) |
(二)
工作 |
A |
B |
C |
D |
E |
F |
G |
H |
等待時間 |
0 |
8 |
0 |
1 |
6 |
1 |
1 |
4 |
等待時間 = 0+8+0+1+6+1+1+4 = 21,平均等待時間 = 21/8 = 2.625 天。