2010-10-05 63 views
2

我正在重構一個涉及傳遞大量數組的項目。目前,返回數組的每個方法在返回之前將其排序。這對於幾個原因並不理想 - 有很多重複的代碼,對數組進行兩到三次排序效率不高,而且編寫新函數太容易,但忘記在返回數組之前對數組進行排序。如何保持數組的排序

我正在尋找一種方法來保證數組始終保持按字母順序排列。我目前的想法是劃分NSMutableArray和/或NSArray以創建按字母順序排列的數組類。我需要覆蓋所有創建或修改數組的方法,以調用super然後自行排序。

這聽起來合理嗎,還是有更好的方法?

編輯: 由於性能問題已被提及,我將包括我的項目中的相關信息。速度不是一個重要的問題。整個過程只需要幾秒鐘,而且該工具只能每隔一段時間使用一次。所以簡單和明顯的正確性更重要。

此外,數組的用例是特定的。當數組返回時,調用者總是訪問數組中的每個元素至少一次。

回答

3

結賬CHDataStructures。這是一個有很多自我排序數據結構的框架,如平衡二叉樹和什麼。

+0

我會檢查這些,這看起來可能是我正在尋找的。 – 2010-10-05 23:34:02

4

平衡二叉樹是保持項目排序的標準和有效的方式。幾乎所有使用普通數組進行隨機訪問的方法都很慢。跳過列表也很有效,您可以將該功能添加到數組類中。

+0

我從來沒有聽說過跳過列表 - 關閉維基百科來閱讀他們。謝謝! – 2010-10-07 16:31:07