Dot-Net
.NET 庫中是否有稀疏數組實現?
.NET 庫中是否已經實現了資料結構,其行為類似於稀疏數組(其中大多數索引為空),通過索引進行 O(1) 訪問,對下一個(和上一個)元素進行 O(1) 訪問?
幾年前,我基於我的“AList”概念實現了一個稀疏集合。它被稱為SparseAList,它可能比您自己推出的任何“簡單”解決方案都要好。例如,@NathanPhilips 的解決方案
Insert具有RemoveAt呼叫ToDictionary.Enumerable.ToDictionary是一種 O(N) 方法-它“從頭開始”重新生成整個字典-因此效率不高。相比之下, SparseAList基於B+ 樹,因此它具有高效的 O(log N) 插入、查找和刪除,並且還可以有效地使用記憶體。它包含在 LoycCore 的Loyc.Collections.dll中,可在 NuGet 上找到(搜尋 Loyc.Collections)。