1
我試圖模擬使用貪婪技術檢測最早完成時間的區間調度算法。我的問題是,如果它將在控制檯應用程序中創建,那麼輸入是什麼?有什麼方法?非常感謝你。區間調度算法:最早完成時間
我試圖模擬使用貪婪技術檢測最早完成時間的區間調度算法。我的問題是,如果它將在控制檯應用程序中創建,那麼輸入是什麼?有什麼方法?非常感謝你。區間調度算法:最早完成時間
每個任務的輸入是開始時間和結束時間(例如,10:00開始時間和14:00結束時間)。您可以將控制檯輸入解析爲日期或沿着這些線路,但如果這只是一個模擬,那麼您可能只需要控制檯輸入爲非負整數(例如4個開始時間和9個結束時間),因爲它會使你更容易分析輸入的工作。
你可以採取幾種貪婪的方法,比如總是選擇最短的任務(意思是間隔最短的任務);最佳方法是始終選擇先完成的任務(例如,您可以根據結束時間對任務進行排序,並選擇不衝突的下一個任務,但可能需要線性時間算法來完成此任務)。
感謝您的快速回復。我是否應該將它限制在一定數量的任務中?例如,輸入5個任務的開始和結束時間。然後處理它。或者,讓用戶輸入任意數量的任務然後在他告訴它這樣做之後處理它是更明智的做法嗎?還有一個,就像你在評論中所說的那樣。 「你可以根據結束時間對任務進行排序,並選擇不衝突的下一個任務」我的理解是,我需要檢查每個任務的每個結束時間(最短任務)並總結它們以獲得最少的時間?我對嗎? – ljpv14
如果您願意,您可以限制輸入大小,但用戶最終會自行無聊並停止輸入數據。您可以通過兩種方式總結任務:總結其運行時間(結束時間 - 開始時間),或確定花費的總時間(上次任務的結束時間 - 0)。 –