Поиск по маске

Существует большой массив записей следующего типа:

typedef struct {
    int value;
    int mask;
    int otherData;
} Entry;

Я бы хотел найти запись в этом массиве в соответствии с предоставленным int key; максимально быстро. Эта запись необходима для обеспечения того, чтобы (ключ и маска) == значение .

Каким будет лучший способ для такой организации массива и какой соответствующий алгоритм его обрабатывает?

Изменить: Там нет ограничений по организации массива; он статичен и может быть подготовлен перед поиском. Значение и маска могут иметь произвольные значения.

Edit2: значение и маска могут иметь произвольные значения, но количество записей в массиве около 10 000. Таким образом, некоторые "паттерны" можно рассчитать заранее.

Количество поисков велико.

10
задан menjaraz 13 January 2012 в 04:05
поделиться