帶有限期的作業排序:很隨便的算法學習

應某人要求,複述題意而非直接copy:

n個作業,持續時間均爲1,每個作業截止時間爲di, 收益爲vi
求一個算法使之可行收益最大

下面算法均爲貪心,都需要先對收益排序。現在認爲已經完成。

  1. 來自百度文庫:先優先滿足收益大的作業,優先最先完成。之後加入下一個作業,根據截止時間,進行類似插入排序。之後驗證是否滿足。O(n^2)
  2. 自思:優先滿足收益最大作業,儘量最遲完成,然後加入下一個作業,類似哈希,不過是向前尋找。O(n^2)
  3. 課件:在2的基礎上加一個並查集,每一位的指針指向的父節點爲當前最晚的可用時間。O(n)? maybe

over~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章