我已经认真考虑过这个问题,但实际上还没有想出什么。
假设我想要一个 m X n 的元素集合,可以按任何列和任何行进行排序,并且在 O(m*n) 以下的时间内插入或删除一行... 是否有可能?
我想到了一个链接网格(linked-grid)的方法,其中节点被插入到向量中以便我可以为它们编制索引,并将第一行和第一列编入索引,以消除在任何一个方向上遍历列表的必要性。使用我的方法,我已经实现了以上的复杂度,但我只是想知道是否有可能通过非常数因子进一步减少复杂度。
排序的示例:
1 100 25 34
2 20 15 16
3 165 1 27
按第三行排序:
25 1 34 100
15 2 16 20
1 3 27 165
按照第一列排序:
1 3 27 165
15 2 16 20
25 1 34 100