文档章节

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

放个屁
 放个屁
发布于 2015/06/12 19:53
字数 266
阅读 249
收藏 8
点赞 0
评论 0

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

漫漫几千里,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*的嵌套搜索。

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


© 著作权归作者所有

共有 人打赏支持
放个屁
粉丝 123
博文 176
码字总数 285078
作品 0
日本
程序员
POJ ~ 3159 ~ Candies (Dijkstra + 优先队列 + 链式前向星 or 栈式SPFA)(差分约束)

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

ZscDst ⋅ 01/31 ⋅ 0

机器学习资料汇总(不断更新)

刘禹锡在《陋室铭》里面曾经写道:山不在高,有仙则名。大致的意思是山的名声不在于山的高低,只要有仙人居住就会出名。这句话揭露了价值的本质。近期准备把找到的一些课程、资料全部收集起来...

斐波那契的数字 ⋅ 2017/12/30 ⋅ 0

梦想起航,星创客燃情岁月

冬日北京的严寒已经过了一半,但在冬日里的阳光课堂热烈、温暖、开心。11月30日,小编再次体验了下在星创客精英训练营充实的学习课堂、感受了下技术的学习乐趣,每位学员认真而耐心地琢磨着潘...

华清远见 ⋅ 2016/12/08 ⋅ 0

F周刊:2017-06-08

基数估计算法概览 很多简单的问题假如上量复杂度就会大大提高,比如按用户统计站点的访问量(即UV)。基数估计则是应对这类问题的良招。其实现原理非常巧妙,理论基础类似连续抛硬币的实验:...

胡键 ⋅ 2017/06/08 ⋅ 0

Kubernets日志采集配置模式介绍与对比

日志服务支持通过Logtail采集Kubernetes(简称K8S)集群日志,并支持CRD(CustomResourceDefinition)和控制台等方式进行采集配置管理。 为提供更优的扩展性、灵活性,Logtail采集的配置与K...

元乙 ⋅ 06/14 ⋅ 0

C语言编程的大门,从入门到精通,你能想象它的距离有多大吗?

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界 ⋅ 03/19 ⋅ 0

机器学习入门书籍导读-工程高等代数

今天要分享的是一本叫做《工程高等代数》的书,这门课简称高工代,应该很多工科生都会要求学的吧,我看的这版我觉得应该算内容比较全的,是北邮出版的不太好找,我直接把购买链接贴到这: ht...

gshengod ⋅ 2017/12/14 ⋅ 0

TB一周萃选[第3期]

TB一周萃选[第3期] Tony Bai2017-12-301 阅读 本文是首发于 个人微信公众号 的文章 “TB一周萃选[第3期]” 的归档。 宋伯仁 宋代诗人 居间无贺客,早起只如常。桃版随人换,梅花隔岁香。 春风...

Tony Bai ⋅ 2017/12/30 ⋅ 0

机器学习·程序员入门路线

迁移自CSDN:http://blog.csdn.net/erlib/article/details/52724352 前言 相信想学习机器学习的广大程序员(工程师)们已经被那些算法大神的学习路线虐的怕怕的了吧?不用担心,我来带你们理理...

孙飞撩技术 ⋅ 2017/10/23 ⋅ 0

荐书||关于Python的一些书籍推荐

为什么要学Python? 因为... 管它用的到,或是用不到,看一看拓宽思路也是极好的。 入门篇 《A Byte of Python》 豆瓣评分:8.7 推荐人群:初学者,短时间内想了解Python A Byte of Python(中...

包包包包包包包子 ⋅ 2017/11/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部