У меня есть 2 массива из 16 элементов (символов), которые мне нужно «сравнить» и посмотреть, сколько элементов равно между этими двумя.
Эта подпрограмма будет использоваться миллионы раз (обычный запуск - около 60 или 70 миллионов раз), поэтому мне нужно, чтобы она была максимально быстрой. Я работаю на C ++ (C ++ Builder 2007, для записи)
Прямо сейчас у меня есть простое:
matches += array1[0] == array2[0];
повторяется 16 раз (так как профилирование кажется на 30% быстрее, чем при выполнении цикла for)
Есть ли другой способ, который мог бы работать быстрее?
Некоторые данные об окружающей среде и сами данные:
- Я использую C ++ Builder, который не учитывает оптимизацию скорости. В конце концов я попробую с другим компилятором, но сейчас я застрял с этим.
- Данные будут отличаться в большинстве случаев. 100% равных данных обычно очень и очень редко (возможно, менее 1%)