如何用轴写一个递归算法?

时间:2016-04-14 04:23:38

标签: java recursion axis point binary-search

我需要递归地在x和y轴坐标上找到一个对象。在这个特殊的代码中,我需要通过反复调用搜索方法找到坐标168,250的“Remy”

pdfStamper.GetOverContent(pageNumber).AddTemplate(page, x, y);

}

1 个答案:

答案 0 :(得分:0)

我建议:

public Point search(int x, int y, int width) {

    System.out.println(x + "\t" + y + "\t" + width);

    int w = width/2;
    if(w<=1)
        return new Point(x,y); 
    int x1 = x+w;
    int y1 = y+w; 

    if(target.x>=x&&target.x<x1&&target.y>=y&&target.y<y1)
        return search(x,y,w); 
    else if(target.x>=x1&&target.x<x+w&&target.y>=y&&target.y<y1)
        return search(x1,y,w); 
    else if(target.x>=x&&target.x<x1&&target.y>=y1&&target.y<y1+w)
        return search(x,y1,w); 
    else /*if(target.x>=x1&&target.x<=x+w&&target.y>=y1&&target.y<=y1+w)*/
        return search(x1,y1,w); 
}

运行此方法时,输出为:

0   0   512
0   0   256
128 128 128
128 192 64
160 224 32
160 240 16
168 248 8
168 248 4
168 250 2
location: 168,250

请注意,它假定width是2的幂。这可以很容易地进行调整。

我希望它有所帮助。