Эффективный алгоритм для создания n-стороннего пересечения отсортированных массивов в C

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

Псевдокод для создания пересечения двух отсортированных массивов:

while i < m and j < n do:
    if array1[i] < array2[j]:
        increment i
    else if array1[i] > array2[j]: 
        increment j
    else 
        add array1[i] to intersection(array1, array2)
        increment i
        increment j

Я работаю с C, и мне нужно четкое объяснение, а не код.

6
задан Iskar Jarak 13 April 2011 в 03:16
поделиться