2011-10-10 3 views
2

MIPS 어셈블리에서 작성하기 전에 작성한 코드를 많이 최적화하려고합니다. 다음은 내 코드에 대한 링크입니다. http://dl.dropbox.com/u/7264839/P1-3.c교차점 찾기 알고리즘에 대한 최적화

문제는 64x64 매트릭스에서 서로 다른 색상의 1 픽셀 너비 선 사이의 교차 수를 찾는 것입니다. 교차로는 T 교차로에 포함되지 않습니다. 또한 선은 항상 그 사이에 최소 1 픽셀의 공간을 갖습니다. 다음은 이미지의 모양을 보여줍니다.

http://dl.dropbox.com/u/7264839/Pics/pile1.png

내 기본 알고리즘은 (주변에 제외한) 모든 픽셀을보고이 검은 경우, 그것을 무시하는 것입니다. 검은 색이 아닌 경우 두면을 확인하고 검은 색이 아닌 동일한 색이면 다른면을 확인하십시오. 검은 색이 아닌 같은 색과 다른면과 다른 색이 있으면 교차로. 또한, 다음 픽셀보다 교차가 발견되면 무시할 수 있습니다.

나는 몇 가지 최적화를 찾았지만 동적 실행 시간이라는 용어가 훨씬 더 빠를 필요가 있습니다. 여러분은 속도를 높이거나 더 나은 알고리즘에 대한 조언을 얻었습니까? 무리 감사!

+0

죄송합니다. 이 곳은 저에게 새로운 곳입니다. 나는 네가 답을 표시 한 것을 몰랐다. – ballaw

+1

질문에 대한 답변이 완전히있는 경우 왼쪽에있는이 체크 표시를 사용하여 표시하십시오. 질문에 완전히 대답하지 않고 매우 가깝고 (문제 해결에 대한 좋은 아이디어를 제공하는) 대답이 다른 것보다 낫다면 그것을 표시하는 것도 고려하십시오. 이것은 당신을 돕기 위해 다른 사람들에게 줄 수있는 작은 보상입니다. 그리고 그것은 당신에게 몇 가지 포인트를 제공합니다. –

+0

또한 코드를 최적화하지 않기를 바랍니다. 나는 그것을 더 빨리 만드는 방법에 대한 통찰력을 원한다. 참조 용으로 내 코드 만 표시합니다. – ballaw

답변

1

당신은 검은 영역에 알고리즘을 최적화 할 수 있습니다 : 양쪽 방향으로 긴 적어도 3 픽셀을 할 필요가 선을 교차하기 때문에, 다음과 같은 패턴을 사용하여 9의 그룹 당 3 픽셀을 확인할 수 있습니다

X . . 
. X . 
. . X 

모든 3x3 정사각형에 픽셀이 검은 색이 아닌 경우 사각형을 건너 뜁니다. 적어도 하나가 검은 색이 아닌 경우 원래 알고리즘으로 되돌아갑니다.

색상/검은 색 비율이 낮 으면 코드를 3 ~ 3 정도 향상시킬 수 있습니다.