-2
我有一個包含許多項目的集合。這些項目有一些屬性,但讓我們假設其中2個在這種情況下是重要的; 可用和優先。可用是一個簡單的布爾屬性,而優先級可以是1到100之間的任何數字。我需要實現的是找到n個順序的項目,其中所有項目都是可用的(== true)並且具有相同的優先級。 我並不僅限於使用集合,這意味着我可以創建額外的數據結構來加速查找過程(如顯示項目狀態的字節數組,例如:101010001)。在集合中查找具有相同屬性的項目
如果非要形象化有點:
1 [99],0 [80],1 [60],1 [60],0 [60]
1和0示出了可用性和括號中的數字顯示優先級。我需要找到第三和第四項。
實現這種算法的最快方法是什麼?
注意:這當然不是一個家庭作業問題。
編輯:我無法更改項目的順序,既不從集合中刪除某些項目。
將所有可用任務存儲在單獨的集合中並根據優先級進行排序? –
HashMap具有loopkup O(1)。不能說你可以比這更好。 – FallAndLearn
'這是順序的 - 所以你不應該改變順序? – MBo