我目前正試圖找出哪個數據結構可能是最好的一個。所以這裏是我想要做的:支持排序的最佳數據結構
我有一個對象和與此對象相關的值。我希望能夠知道結構中的哪個條目具有最小的值。
因此,舉例來說,如果我有以下對象:
ZebraObject, 10
CowObject, 1
DogObject, 2
我希望能夠知道哪些對象具有最小值(在這種情況下,是CowObject)。我還必須訪問CowObject中的數據(調用一些函數,進行一些計算等),最後,我會做一些類似'value + = value'的事情。我訪問的CowObject所以後,數據會看起來像
ZebraObject, 10
CowObject, 2 // (1 + 1)
DogObject, 2
誰能幫我找出最佳的數據結構的這種情況呢?
編輯:我假設每個元素(至少對於對象)都是唯一的。與對象關聯的浮點值可以是重複的。
看來你需要一個小小的堆。在這種情況下,你的最小對象將在堆的頂部,它將需要O(1)時間來獲得它的值 –
我完全忘記了最小堆!非常感謝你!! – dwnenr
@SerhiyChupryk,根據你的建議,值1,2,10將被視爲鍵和minheap將是理想的,但目前的OP正在試圖考慮隨着時間的推移修改這些鍵,並將包含重複的鍵。哦,是的,最小/最大堆可以包含重複項。我在開始的思考過程中認爲ZebraObject,CowObject,DogObject是鍵,而10,1,2是值。我應該想到另一種方式。 (感謝指出minheap) –