文档章节

A星算法入门之入ing...

如比如比
 如比如比
发布于 2015/06/12 19:53
字数 266
阅读 603
收藏 8

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

几天以来的瞎折腾,能算入门么?

漫漫几千里,A星算法这么走。


测试程序:

public class AStarTest {


    /**

     * @param  args

     */

    public static void main(String[] args) {


        int[][] mySearchArea = new int[][] {

        {1, 1, 1, 1, 1, 1, 1, 1},

        {1, 1, 1, 1, 0, 1, 1, 1},

        {1, 1, 1, 1, 0, 1, 1, 1},

        {1, 1, 1, 1, 0, 1, 1, 1},

        {1, 1, 1, 1, 1, 1, 1, 1},

        {1, 1, 1, 1, 1, 1, 1, 1}

        };

        AStar astar = new AStar(mySearchArea, 8, 6);


        System.out.println("Pathfinding by A*...");

        long st = new Date().getTime();


        List<AStarNode> list = astar.find(2, 2, 2, 6);

        if (list.size() > 0) {

            for (int i = 0; i < list.size(); i++) {

                mySearchArea[list.get(i).getX()][list.get(i).getY()] = AStarConstants.NOTE_ONPATH;

            }


            System.out.println("--------------->Y");

            System.out.println(" 012345678901234Y");

            for (int i = 0; i < mySearchArea.length; i++) {

                System.out.print(i % 10);

                for (int j = 0; j < mySearchArea[0].length; j++) {

                    if (mySearchArea[i][j] == AStarConstants.NOTE_ONPATH) {

                        System.out.print("*");

                    } else {

                        if (mySearchArea[i][j] == AStarConstants.NOTE_UNWALKABLE) {

                            System.out.print("=");

                        } else {

                            System.out.print(" ");

                        }

                    }

                }

                System.out.println();

            }

        } else {

            System.out.println("没有通路。");

        }

        System.out.println("X------------------");

        System.out.println("end 用时:" + (new Date().getTime() - st));

    }

}


结果:

Pathfinding by A*...

--------------->Y

 012345678901234Y

0        

1    =   

2  * = * 

3   *= * 

4   ***  

5        

X------------------

end 用时:15


今后的预定

1.在实际中结合图,进行泛化。

2.实现A*的嵌套搜索。

先遐想一番吧。憧憬总是那么的美好。


© 著作权归作者所有

如比如比
粉丝 126
博文 178
码字总数 286951
作品 0
日本
程序员
私信 提问
加载中

评论(0)

1000人证明过的3D视觉系统学习教程

写在前面 我们在「3D视觉从入门到精通」星球里已经为大家梳理了以下一些内容: (一) 3D视觉学习路线 (二)线上视频课程 (三)3D视觉顶会|期刊 (四)精华github资源 (五)往期帖子与问答...

3D视觉工坊
05/28
0
0
大牛推荐的30本经典编程书籍,从Python到前端全系列。

注:为了方便阅读与收藏,我们也制作了30本书籍完整清单的Markdown、PDF版以及思维导图版,大家可以在实验楼公众号后台回复关键字“书籍推荐”获取。 Python 系列(10本) 如果你之前一点编程...

osc_gxtueyne
2019/03/08
7
0
POJ ~ 3159 ~ Candies (Dijkstra + 优先队列 + 链式前向星 or 栈式SPFA)(差分约束)

推荐一片入门博客:夜深人静写算法(四) - 差分约束 个人感觉很有用的地方,暂存一下,备查: 4、最大值 => 最小值 然后,我们将问题进行一个简单的转化,将原先的"<="变成">=",转化后的不...

ZscDst
2018/01/31
0
0
仅限母亲|如何更高效地系统化学习3D视觉?

写在前面 今天是母亲节,送给我们粉丝中符合妈妈身份的一张专属优惠券(仅30份)。 随着我们队伍的不断壮大,目前星球嘉宾及合伙人,主要包括多个大厂的计算机视觉算法工程师、深度学习算法工...

3D视觉工坊
05/11
0
0
【最短路】Dijkstra+ 链式前向星+ 堆优化(优先队列)

Dijkstra+ 链式前向星+ 优先队列 Dijkstra算法   Dijkstra最短路算法,个人理解其本质就是一种广度优先搜索。先将所有点的最短距离Dis[ ]都刷新成∞(涂成黑色),然后从起点x (Dis[x]= 0, D...

osc_127lqd1g
2019/03/18
2
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在Windows上安装pip? - How to install pip on Windows?

问题: pip is a replacement for easy_install . pip替代了easy_install 。 But should I install pip using easy_install on Windows? 但是我应该在Windows上使用easy_install安装pip吗? ......

fyin1314
今天
21
0
gitlit二级目录访问

由于我们只有一个域名暴露,特殊需求,所以需要二级目录访问 配置文件在 defaults.properties 第1985行 contextPath 改掉就好了 # Context path for the GO application. You might want to...

shzwork
今天
24
0
OSChina 周一乱弹 —— 我电脑传染了新冠脚气

@性感码农 :不结婚,被老爸说,回村里别人都瞧不起你,及即使你赚了很多钱,不结婚,永远没有人瞧得起你。挺纳闷的,要别人瞧得起我干嘛 又不回村里, 跟他们生活也没什么交集啊, 用得着他...

小小编辑
今天
18
0
类加载的过程

加载->链接->初始化; 其中链接又分为:验证->准备->解析。

曦鱼violet
今天
21
0
Linux下几个与磁盘空间和文件尺寸相关的命令

硬盘是计算机非常重要的一个部件,不管是代码,还是 UI 、声音、文档,抑或是没人时偷偷看的小视频,都需要保存在硬盘里。 对于很多 Linux 服务器,会进行很多的编译操作。而编译操作在很多情...

Linux就该这么学
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部