if(Arrays.binarySearch(isPass,map[fy][fx]) = 0) { Node node2 = new Node(fx, fy); node2.parent = node; node2.G = node.G + 10; //采用manhattan启发算法 两点中的直角 距离 node2.H = Math.abs((ex-fx+ey-fy)

if(Arrays.binarySearch(isPass,map[fy][fx]) >= 0)  {

Node node2 = new Node(fx, fy);

node2.parent = node;

node2.G = node.G + 10;

//采用manhattan启发算法  两点中的直角 距离

node2.H = Math.abs((ex-fx+ey-fy)*10);

node2.F = node2.G + node2.H;

OpenList.add(node2);

}

}

if(flag==false)

{

break;

}

if(OpenList.size()==0)

{

return null;

}

node = MinF(OpenList);

OpenList.remove(node);

CloseList.add(node);

}

ArrayList Path = new ArrayList();

node = end;

while(node.parent!=null)

{

Path.add(node);

node = node.parent;

}

return Path;

}

public Node MinF(List list)

{

Node min= list.get(0);

for(int i = 0; i

{

if(list.get(i).F<=min.F)

{

min = list.get(i);

}

}

return min;

}

public boolean containOpen(int x,int y)

{

for(Node node : OpenList)

{

if(node.equals(x,y))

{

return true;

}

}

return false;

}

public Node getOpen(int x,int y)

{

for(Node node : OpenList)

{

if(node.equals(x,y))

{

return node;

}

}

return null;

}

public boolean containClose(int x,int y)

{

for(Node node : CloseList)

{

if(node.equals(x,y))

{

return true;

}

}

return false;

}

}

java a 2_Java A* 算法(2)相关推荐

  1. java培训:Java的十大算法

    想要学好java语言,就要打好基础,java要学习的东西有很多,今天小编就来和大家说下java的十大算法. 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个 ...

  2. Java常见的面试算法题:实现两个线程交替打印1到100的数

    Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...

  3. 【使用Java编写的B*算法】

    使用XP系统之家Java编写的B*算法 package rpg.stage.path; import java.util.ArrayList; import java.util.HashSet; im ...

  4. 了解java虚拟机—垃圾回收算法(5)

    引用计数器法(Reference Counting) 引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器减1.只要对象A的引用计数器的 ...

  5. java里冒泡排序编程案例_java编程题:用Java实现一个冒泡排序算法

    /** * java编程题:用Java实现一个冒泡排序算法 */ public class Test12 { public static void main(String[] args) { int[ ...

  6. Java工具类--雪花算法生成全局唯一ID

    import java.lang.management.ManagementFactory; import java.net.InetAddress; import java.net.NetworkI ...

  7. Java内存组成GC算法

    Java内存组成&GC算法 @(JAVA)[java] Java内存组成GC算法 一内存组成 一Java程序的内存组成 1Java堆 2方法区含常量池永久代 3栈 1Java虚拟机栈 2本地方 ...

  8. android studio插入数据表中没有_学Java能拿高薪吗 Java中常见排序算法有哪些

    学Java能拿高薪吗?Java中常见排序算法有哪些?作为老牌编程语言,Java拥有广阔的市场占有率,几乎90%以上的大中型互联网应用系统在服务端开发都会首选Java.为了加入到Java这一高薪行业,很 ...

  9. java矩阵连乘算法_使用java写的矩阵乘法实例(Strassen算法)

    Strassen算法于1969年由德国数学家Strassen提出,该方法引入七个中间变量,每个中间变量都只需要进行一次乘法运算.而朴素算法却需要进行8次乘法运算. 原理 Strassen算法的原理如下 ...

最新文章

  1. phonegap 性能优化 以及 phonegap + Angularjs + ionic 移动 app 开发介绍
  2. 统计与分布之高斯分布
  3. linux memalign、valloc函数
  4. String类的构造与析构相关处理
  5. Bootstrap 幻灯片效果
  6. 云图说|OLAP开源引擎的一匹黑马,MRS集群组件之ClickHouse
  7. 转:Java中的异常处理
  8. iPhone手机投屏小米盒子
  9. 机器学习的开源工具-开源程序-研究工具
  10. 马尔可夫过程及其例题分析
  11. [深度学习] ImageAI库使用笔记
  12. Oracle锁表查询和解锁方法
  13. 2019寒假专题一 L CodeForces - 1260B
  14. 我学了这套性能优化方法论,领导年终奖给我发了6个月
  15. php 使用xunsearch--迅搜
  16. 大脚插件技能栏美化_魔兽大脚界面调整怎么用 魔兽世界大脚界面调整设置教程...
  17. Android Q Beta 正式发布 | 精于形,安于内
  18. 使用redis实现缓存_用下一个js实现一个简单的redis缓存
  19. 运维中的交换机堆叠是什么
  20. (企业)注册公众平台步骤---订阅号

热门文章

  1. django使用用户名或手机号码登录
  2. 由百度 “PHP薪资” 引发的思考
  3. LeetCode题解 343.Integer Break
  4. iOS: 属性声明strong和retain竟然不一样
  5. 手机号、姓名、邮箱等合法性验证方法
  6. 锡安赞歌 mp3下载
  7. (转)基于svnserve的服务器,权限文件authz配置的常见问题及解答
  8. TCP如何保证可靠性
  9. bat java 启动脚本_bat批处理启动java程序通用脚本
  10. 最新车载导航端口检测工具_高德地图这个功能 把微信都没做好的车载社交解决了?...