我在 Visual Studio (c#) 中看到过类似 SortedList 的东西。但是,我不知道它是如何工作的以及如何使用它。我想使用 SortedList 因为我希望它的访问时间比普通列表快。不幸的是,我不能使用数组。我很高兴看到一些简单的例子。
编辑:假设有一个对象类:
class Point
{
public Point(int a, int b) {x = a; y = b;}
int x;
int y;
}
// x value will not be repeating in a list
Point a1 = new Point(1,2);
Point a2 = new Point(3,5);
Point a3 = new Point(0,2);
Point a4 = new Point(2,7);
Point a5 = new Point(14,2);
Point a6 = new Point(9,10);
SortedList<Point> list = new SortedList<Point>();
list.Add(a1);
list.Add(a2);
list.Add(a3);
list.Add(a4);
list.Add(a5);
list.Add(a6);
是否可以在 O(log2n) 时间内添加所有这些元素?我希望我的列表在添加后看起来像这样。无需在排序后被迫再次对其进行排序。
(0,2)
(1,2)
(2,7)
(3,5)
(9,10)
(14,2)
然后我想检查一下,是否有 (x == 9) 的对象。在 O(log2n) 时间内有可能吗?
谢谢