Имеется такой массив:
[code] static record_t handlers[] =
{
{0x0f800010, 0x06000010, handler1},
{0x1ff00030, 0x06800010, handler2},
// ... примерно 100 еще таких записей ... {0x1fb000f0, 0x06a00030, handlerN},
};
[/code]
По нему из потока выбираются числа, на них накладывается маска (1 число) и сравнивается со значением (2 число). Если совпало, то вызывается соответствующий handler. Причем записи расположены так, чтобы наиболее "конкретная" из похожих находилась выше более "широкой".
Сейчас поиск осуществляется довольно медленно и хочется его ускорить.
Подскажите пожалуйста какой-нибудь алгоритм, который позволит разбить эти записи на подгруппы для ускорения поиска. Или может можно эту задачу решить как-то по-другому? Причем Желательно еще учитывать частоту встречи во входном потоке числа, соответствующего маске (сейчас такие записи подняты вверх насколько это возможно).