datastructure
猿气
码畜
展开
-
《java常用算法手册》 第二章 数据结构 树 图
前面我们介绍数组的数据结构,我们知道对于有序数组,查找很快,并介绍可以通过二分法查找,但是想要在有序数组中插入一个数据项,就必须先找到插入数据项的位置,然后将所有插入位置后面的数据项全部向后移动一位,来给新数据腾出空间,平均来讲要移动N/2次,这是很费时的。同理,删除数据也是。 然后我们介绍了另外一种数据结构——链表,链表的插入和删除很快,我们只需要改变一些引用值就行了,但是查找数据却...原创 2018-10-18 18:02:02 · 332 阅读 · 0 评论 -
GA 解决TSP
接上一篇贪心TSP att48的最优解为10628故贪心距离最优解还有很大的距离本文使用GA来处理TSP问题交叉操作部分匹配法(Partially Matching Crossover, PMX)循环交叉法(Cycle Crossover, CX)次序交叉法1(Order Crossover, OX1)次序交叉法2(Order Crossover, OX2)...原创 2019-06-03 12:23:23 · 903 阅读 · 0 评论 -
贪心TSP
使用贪心策略实现TSP数据集为att48package com.TSP;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public c...原创 2019-05-31 16:06:27 · 515 阅读 · 0 评论 -
单起点多终点规划
一名消费者必须访问n个货架,恰好访问每个货架一次(最好),并最终回到出发点。消费者从货架i到货架j的花费是一个整数,行动所需的全部费用是他行走经过的的各边费用之和,而消费者希望使整个旅行费用最低。TSP(Travelling salesman problem)问题总结:Hamiltonian cycle:Hamiltonian graph: ...原创 2019-05-22 12:16:14 · 1050 阅读 · 0 评论 -
多线程并行 Dijkstra与A*算法结合实践
多线程并行 Dijkstra与A*算法融合1、Dijkstra总能找到最优解 但是时间消耗大 ,本文实现了多线程并行的搜索算法,使得路径搜素时间缩短约1/32、H作为传入参数可以使得本算法可以切换为A*也可以变为Dijkstra3、本算法使得空间复杂度增加4、程序构造了一个路网测试程序、后续准备进行路网随机生成测试算法主程序import java.util.Arr...原创 2019-05-04 11:48:29 · 2556 阅读 · 0 评论 -
路径规划A*算法 JAVA实现
A*是路径搜索中最受欢迎的选择:路径代价的估算: F = G+Hpackage com.bit.pathplanning;/** * 地图网格节点类 * @author Hao * */public class MapNode { private double x; private double y; private double G; private dou...原创 2019-01-02 20:19:59 · 1404 阅读 · 0 评论 -
卡尔曼滤波实现java
卡尔曼滤波(Kalman filtering)一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。虽然卡尔曼滤波在对过去值的估计、对现在值的估计以及对将来值的估计方面都有应用,但是如果直接将卡尔曼滤波运用到预测上,其实是很不适用的。在预测过程中一般将卡尔曼滤波与ARMA模型结合,可...原创 2019-01-02 20:13:17 · 7200 阅读 · 8 评论 -
《Effective Java》 第二章
https://www.cnblogs.com/rayguo/p/3771100.html优点三:静态工厂方法可以返回原返回类型的任何子类的对象 ** * Father类 * @author xujianguo */class Father { /** * 构造方法 */ public Father() {} ...原创 2018-11-29 20:18:19 · 382 阅读 · 0 评论 -
《实战Java高并发程序设计》 第三章 JDK并发包
重入锁 重入锁处理中断 避免死锁 线程池 核心线程池内部实现 ...原创 2018-11-22 19:27:43 · 430 阅读 · 0 评论 -
《实战Java高并发程序设计》 第二章 java并行程序基础
join的本质是wait hashmap 并发问题 查看jstack hashmap链表成环 int...原创 2018-11-16 18:33:15 · 343 阅读 · 0 评论 -
《实战Java高并发程序设计》 第一章 走入并行世界
原创 2018-11-15 15:52:06 · 331 阅读 · 0 评论 -
《java常用算法手册》 第二章 数据结构 栈 队列
顺序栈的实现:package LineStructure;//参考 https://blog.csdn.net/icarus_wang/article/details/79561863public class Stack<T> extends Object{ int MaxLength = 10; T[] Arr...原创 2018-10-17 15:01:18 · 296 阅读 · 0 评论 -
《java常用算法手册》 第三章 算法思想
//穷举public class Exhaustion { public static void main(String args[]) { Exhaustion e = new Exhaustion(); System.out.println(e.cal(100, 300)); } public String cal(int heads, int le...原创 2018-10-22 08:53:50 · 419 阅读 · 2 评论 -
《java常用算法手册》 第二章 数据结构 顺序表 单链表
数据元素:例如单向链表的一个节点 拥有 头指针和数据两个数据组成 四种存储方式 : 顺序表的实现 :package LineStructure;//顺序表public class SeqList<T> extends Object { /...原创 2018-10-16 11:42:52 · 327 阅读 · 0 评论 -
SA退火 解决TSP
1、初始化随机路径2、初始化最好的路径编码3、计算初始随机路径花费4、降温次数 5、每个温度迭代 邻域交换 并产生新的邻域 计算花费 记录最佳出现代数 降温退火package com.SA;import com.TSP.My...原创 2019-06-04 16:49:41 · 381 阅读 · 0 评论