Ну в общем-то, как заметил
Александр, вы хотите чуда, но алгоритм можно оптимизировать, если есть какая-либо закономерность, которая позволяет предсказать, в каких областях может быть искомый паттерн.
Также если местоположение начала паттерна не может быть произвольным (то есть паттерн может начинаться в 1, 11, 21 байте, но не может начинаться в 37 к примеру), то время поиска можно сократить менее, чем в 10 раз, сначала поискав все первые байты, а потом проверив эти места уже полностью.
Также можно поискать закономерность в этом паттерне.
Но в целом, если это будет регулярной задачей, прикрутите что-нибудь для первоначальной обработки массива.