Re[2]: Хитрое пересечение массивов
От: Аноним  
Дата: 31.07.07 13:03
Оценка:
Здравствуйте, Bell, Вы писали:

B>Здравствуйте, Аноним, Вы писали:


А>>Есть два массива int A[50000] и int B[50000000]. Нужно построить массив C, который бы содержал все элементы массива A в том порядке, в каком они встречаются в массиве B. Как это сделать быстро?


А>>То есть в массиве A отфильтрованные значения, в массиве B отсортированные по какому-то признаку, нужно получить отфильтрованные и отсортированные.


А>>Пока быстрее всего работало решение, в котором я шёл по массиву B последовательно, искал каждое значение в массиве A и если оно найдено клал его в C. Но есть надежда, что это как сортировка пузырьком...


B>Перед проходом по B сортируем А и для поиска в А используем бинарный поиск. При использовании для сортировки А того же критерия, что и для В, можно быстро проскакивать в В диапазоны, не содержащиеся в А.


Спасибо. Критерии разные (собственно экстремальная тяжесть критерия сортировки и заставляет пробовать отсортировать один раз, положить и пытаться использовать в дальнейшем)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.