java a 2_Java A* 算法(2)
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)相关推荐
- java培训:Java的十大算法
想要学好java语言,就要打好基础,java要学习的东西有很多,今天小编就来和大家说下java的十大算法. 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个 ...
- Java常见的面试算法题:实现两个线程交替打印1到100的数
Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...
- 【使用Java编写的B*算法】
使用XP系统之家Java编写的B*算法 package rpg.stage.path; import java.util.ArrayList; import java.util.HashSet; im ...
- 了解java虚拟机—垃圾回收算法(5)
引用计数器法(Reference Counting) 引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器减1.只要对象A的引用计数器的 ...
- java里冒泡排序编程案例_java编程题:用Java实现一个冒泡排序算法
/** * java编程题:用Java实现一个冒泡排序算法 */ public class Test12 { public static void main(String[] args) { int[ ...
- Java工具类--雪花算法生成全局唯一ID
import java.lang.management.ManagementFactory; import java.net.InetAddress; import java.net.NetworkI ...
- Java内存组成GC算法
Java内存组成&GC算法 @(JAVA)[java] Java内存组成GC算法 一内存组成 一Java程序的内存组成 1Java堆 2方法区含常量池永久代 3栈 1Java虚拟机栈 2本地方 ...
- android studio插入数据表中没有_学Java能拿高薪吗 Java中常见排序算法有哪些
学Java能拿高薪吗?Java中常见排序算法有哪些?作为老牌编程语言,Java拥有广阔的市场占有率,几乎90%以上的大中型互联网应用系统在服务端开发都会首选Java.为了加入到Java这一高薪行业,很 ...
- java矩阵连乘算法_使用java写的矩阵乘法实例(Strassen算法)
Strassen算法于1969年由德国数学家Strassen提出,该方法引入七个中间变量,每个中间变量都只需要进行一次乘法运算.而朴素算法却需要进行8次乘法运算. 原理 Strassen算法的原理如下 ...
最新文章
- phonegap 性能优化 以及 phonegap + Angularjs + ionic 移动 app 开发介绍
- 统计与分布之高斯分布
- linux memalign、valloc函数
- String类的构造与析构相关处理
- Bootstrap 幻灯片效果
- 云图说|OLAP开源引擎的一匹黑马,MRS集群组件之ClickHouse
- 转:Java中的异常处理
- iPhone手机投屏小米盒子
- 机器学习的开源工具-开源程序-研究工具
- 马尔可夫过程及其例题分析
- [深度学习] ImageAI库使用笔记
- Oracle锁表查询和解锁方法
- 2019寒假专题一 L CodeForces - 1260B
- 我学了这套性能优化方法论,领导年终奖给我发了6个月
- php 使用xunsearch--迅搜
- 大脚插件技能栏美化_魔兽大脚界面调整怎么用 魔兽世界大脚界面调整设置教程...
- Android Q Beta 正式发布 | 精于形,安于内
- 使用redis实现缓存_用下一个js实现一个简单的redis缓存
- 运维中的交换机堆叠是什么
- (企业)注册公众平台步骤---订阅号
热门文章
- django使用用户名或手机号码登录
- 由百度 “PHP薪资” 引发的思考
- LeetCode题解 343.Integer Break
- iOS: 属性声明strong和retain竟然不一样
- 手机号、姓名、邮箱等合法性验证方法
- 锡安赞歌 mp3下载
- (转)基于svnserve的服务器,权限文件authz配置的常见问题及解答
- TCP如何保证可靠性
- bat java 启动脚本_bat批处理启动java程序通用脚本
- 最新车载导航端口检测工具_高德地图这个功能 把微信都没做好的车载社交解决了?...