Я пытаюсь сильно оптимизировать фрагмент кода, который я написал, прежде чем писать его в сборке MIPS. Вот ссылка на мой код: http://dl.dropbox.com/u/7264839/P1-3.c
Проблема состоит в том, чтобы найти количество пересечений между линиями шириной 1 пиксель разных цветов в матрице 64x64. Пересечение не считается для T пересечений. Кроме того, строка всегда будет иметь по крайней мере 1 пиксель между ними. Вот изображение того, как изображение может выглядеть.
http://dl.dropbox.com/u/7264839/Pics/pile1.png
Мой основной алгоритм - смотреть на каждый пиксель (кроме тех, которые расположены по периметру) и, если он черный, игнорировать его. Если это не черный, проверьте две стороны, и если они одного цвета, а не черного, проверьте другие стороны, и если они одного цвета, а не черного, и другого цвета с других сторон, есть пересечение. Кроме того, если найдено пересечение, следующий пиксель можно игнорировать.
Я нашел несколько оптимизаций, но они все еще должны быть намного быстрее в условиях динамического выполнения. У вас есть какие-либо советы по ускорению или лучший алгоритм в целом. Большое спасибо!