2014-11-15 43 views
0

我需要该图像中分割2D阵列成块等(我不能发布图像尚未)除以2维阵列成不等于矩形和正方形

如果主对角线= 1。然后我检查下一个广场。如果我有矩形,我只检查点(0,0)和(1,1)。 数组可以分为4 * 4,3 * 3,2 * 2的正方形。 我想那一定是这样的

for (int i=start;i<start+len_of_square;i++) 
    for (int j=start;j<start+len_of_square;j++) 
     { 
      //do checking 
     } 

但它只会工作,如果阵列可以分为相等的正方形。 有没有一些算法来做到这一点?

+1

我不明白你在问什么。 – Unihedron

+0

你需要一个相同的公式吗? –

+0

我需要算法来做像在图片中一样的东西,并且把这个数组也分成3 * 3和2 * 2。 – romandemidov

回答

1

我不太了解堆栈溢出的规则和规定。检查以下算法是否符合您的要求。而不是循环遍历所有单元格,然后使用“if”按照以下方法逐个删除。它会快得多,因为回路将运行的全阵列/除法倍长度仅

for(int i=0;i<length of full array/division && i<length of full array;i++) 
{ 
     for(int j=0;j<length of full array/division && j<length of full array;j++) 
     { 
      //do operation for array[divison*i][division*j] and array[divison*i+1][division*j+1] 
     } 
} 

它会检查是否划分为4作为每个图象然后(0,0),(1,1),(0, 4),(1,5),(0,8),(1,9),(4,0)(5,1).... order

+1

如果你不太了解规则和规定,那么这是你需要学习的第一件事。你应该完成[Tour](http://stackoverflow.com/tour) - 你获得了徽章 - 你应该通过[Help center](http://stackoverflow.com/help)。如果你不这样做,你一定会在很长一段时间内赚取很多低价​​。 – RealSkeptic