Я пытаюсь решить проблему, и я понял, что сложность моего решения была выше, чем ожидалось из-за того, что Insert
для List<T>
является O (n) (источник: https://msdn.microsoft.com/en-us/library/sey5k5z4(v=vs.110).aspx).Имеет ли C# .NET какую-либо структуру данных, которая удовлетворяет следующим свойствам?
То, что я хочу, это структура данных, как
- Sequential контейнер
- имеет двоичный метод поиска, который работает, когда элементы в порядке
- лучше, чем O (N) вставки в индексе
- O (1), чтобы получить количество элементов в контейнере
- O (1) поиск по индексу
Другими словами, я хочу что-то вроде List<T>
, за исключением более быстрой вставки.
[LinkedList] (https://msdn.microsoft.com/en-us/library/he2s3bh7 (v = vs.110) .aspx)? –
@MatthewCawley Я не думаю, что вы можете получить доступ к элементу по индексу в O (1) с помощью 'LinkedList'. Например. не может делать 'int median = LL [LL.Count/2];' –
user7127000
Хорошо, я не был уверен, соответствует ли он всем критериям, просто отправляя его туда для обсуждения. Будет интересно увидеть ответ, когда он придет ... –