Существует большой массив записей следующего типа:
typedef struct {
int value;
int mask;
int otherData;
} Entry;
Я бы хотел найти запись в этом массиве в соответствии с предоставленным int key;
максимально быстро. Эта запись необходима для обеспечения того, чтобы (ключ и маска) == значение
.
Каким будет лучший способ для такой организации массива и какой соответствующий алгоритм его обрабатывает?
Изменить: Там нет ограничений по организации массива; он статичен и может быть подготовлен перед поиском. Значение
и маска
могут иметь произвольные значения.
Edit2: значение
и маска
могут иметь произвольные значения, но количество записей в массиве около 10 000. Таким образом, некоторые "паттерны" можно рассчитать заранее.
Количество поисков велико.