С# самое быстрое пересечение двух наборов отсортированных чиселC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 С# самое быстрое пересечение двух наборов отсортированных чисел

Сообщение Anonymous »

Я вычисляю пересечение двух наборов отсортированных чисел в критически важной по времени части моего приложения. Этот расчет является самым узким местом во всем приложении, поэтому мне нужно его ускорить.

Я попробовал кучу простых вариантов и сейчас использую этот:

Код: Выделить всё

foreach (var index in firstSet)
{
if (secondSet.BinarySearch(index) < 0)
continue;

//do stuff
}
И firstSet, и SecondSet имеют тип List.

Я также пробовал использовать LINQ:

Код: Выделить всё

var intersection = firstSet.Where(t => secondSet.BinarySearch(t) >= 0).ToList();
и затем пересечение пересечения.

Но поскольку оба этих набора отсортированы, я чувствую есть лучший способ сделать это. Обратите внимание, что я не могу удалять элементы из наборов, чтобы уменьшить их. Оба набора обычно состоят примерно из 50 предметов каждый.

Пожалуйста, помогите мне, ребята, так как у меня не так много времени, чтобы сделать это. Спасибо.

ПРИМЕЧАНИЕ. Я делаю это примерно 5,3 миллиона раз. Поэтому каждая микросекунда имеет значение.

Подробнее здесь: https://stackoverflow.com/questions/716 ... ed-numbers
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему я получаю ограничение по времени, превышающее пересечение двух отсортированных массива?
    Anonymous » » в форуме C++
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Почему я получаю ограничение по времени, превышающее пересечение двух отсортированных массива?
    Anonymous » » в форуме C++
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Пересечение двух наборов данных, один линейный и один
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Пересечение двух наборов данных, один линейный и один
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Пересечение двух наборов данных, один линейный и один
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»