我已經閱讀了大量關於爲特定實施選擇正確收藏的文章, ,並且我明白最終它會歸結爲對實際數據進行基準測試,但是我忙於這樣做:收藏修改項目
什麼排序在C#中的集合允許修改項目 包含?我似乎無法找到任何?
這是因爲修改可能會實施爲刪除 然後重新插入,從而使明確的「修改」功能 毫無意義?
我需要一個集合(自定義或標準庫), 與它進行下列操作。
- 插入 - 通常
- 刪除 - 經常
- 修改 - 經常
- 選擇前X元素 - 每一個上述任何情況發生時,更多的,同時。
目前我使用的是SortedSet的,因爲它提供了O(LOGN)插入,但我對 去除性能以及如何最好地修改項目不清楚。
集合是否需要隨時排序?如果您可以應用多個修改,然後再進行一次排序,您將獲得巨大的性能優勢。 – 2012-04-21 17:36:14
@Evenhuis不幸的是,因爲多個'客戶'將要求這個列表,並且他們需要按排序順序每次對列表進行更改。或者至少是最上面的元素。 – Vort3x 2012-04-21 17:37:43
我們在數據結構課程中使用了均衡的BST。它非常快,但我們用C++實現它。你可能會考慮它。這是一個很好的信息源:http://www.codeproject。com/Articles/68500 /平衡二分搜索樹BST-Search-Delete-Prin – 2012-04-21 17:40:11