标签: sortedcollection

Smalltalk:按两个标准对集合进行排序

如何在Cincom VisualWorks中按两个条件对集合进行排序?

示例:我有一个包含人员的OrderedCollection,并且想要一个新的集合,该集合首先按年龄对人员进行排序,然后如果年龄与人名相同.

希望你能理解我的英语!谢谢..

sorting smalltalk visualworks sortedcollection

8
推荐指数
4
解决办法
1799
查看次数

寻找可以访问上一个和下一个元素的 .Net 排序集合

我正在实施Bentley-Ottman 算法,该算法需要扫描线 (SL) 具有以下属性的数据结构:

  • 维护 的排序集合T,其中TIComparable<T>
  • 元素的插入应该是O(log count),并且应该返回元素是否已经插入,
  • 删除元素应该是O(log count)
  • 对于给定的元素e(无论是否已经在集合中),我需要e排序顺序旁边的集合的上一个和下一个元素。

SortedList<TKey, TValue>O(count)at 插入和删除,因为它必须移动列表中的所有连续元素。但是,O(1)一旦我知道e.

SortedDictionary<TKey, TValue>SortedSet<T>O(log count)插入和删除,但我找不到任何迭代器给我下一个和上一个元素。

是否有任何实现可以为我提供完整的功能?

如果没有,实现它的最快方法是什么?LinkedList<T>不允许二分查找。List<T>仍然有O(count)插入/删除。我真的必须实现我自己的平衡树吗?

.net c# sorting data-structures sortedcollection

2
推荐指数
1
解决办法
518
查看次数