java归并算法及其优化

Java 发表评论
1 归并算法的java代码 算法思想: 简单的将原始序列划分成两个子序列 分别对每个子序列进行递归排序 最后将排好序的子序列合并为一个有序序列,即归并过程 先分再合,类似与二叉树的后序周游。 算法分析: 不稳定 总空间代价为O(n) 总时间代价为O(n*logn) 2 归并算法的优化1  归并时从两端开始处理,向中间推进 对merge函数的优化: 3 对归并算法递归的优化 对基本已排序的序列进行直接插入排序,如果…

java后台判断一个地理坐标是否在电子围栏 圆、矩形、多边形区域内

测试没问题,我用的是原始坐标;要注意的是坐标转换问题,要看当前是属于什么坐标系         /** * 地球半径 */ private static double EARTH_RADIUS = 6378138.0; private static double rad(double d) { return d * Math.PI / 180.0; }         /** * 计算是否在圆上(单位/千米) * * @Title: GetDistance * @Description: TODO() * @param radius 半径 * @param lat1 纬度 * @param lng1 经度 * @…

八大排序算法Java

概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。          当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。    快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速…

十种常见的排序算法总结(java版)

Java 发表评论
排序是程序开发中非常常见的操作,对一组任意的数据元素经过排序操作后,就可以把他们变成一组一定规则排序的有序序列。排序算法属于算法中的一种,而且是覆盖范围极小的一种,但彻底掌握排序算法对程序开发是有很大的帮助的。 对于一种算法,一般从如下3个方面来衡量算法的优劣。 时间复杂度 空间复杂度 稳定行 对于一般的排序,可以使用非常简单的排序来完成,如直接选择,直接插入等,但也有一些…

【Algorithms】最短路径算法CH:Contraction hierarchies

Java 发表评论
CH的思路: Contraction hierarchies 预处理生成一个多层的结构,每个点都处在单独的一层。事先对点进行优先级排序(怎么排都行,但是排序的好坏直接影响到预处理的效率以及搜索的效率。举个例子,邻接点个数) 点的优先级(高低)是人为指定的,根据优先级从低到高依次选点进行contraction.什么是contraction呢,假设拿掉这个点,看看会不会影响图中点对之间的shorstest path。因此只需要看看它邻接…

第一章 安全总览

Java 发表评论
Java安全概述     介绍密码学,公钥基础结构,身份验证,安全通信,访问控制和XML签名。Java安全体系结构     概述了主要安全功能的动机,安全类及其用法介绍,安全体系结构对代码的影响的讨论以及编写安全敏感代码的想法。Java安全标准算法名称规范     描述了Java SE要求和使用的算法,证书和密钥库类型的标准名称集合。JDK中的权限    描述了内置的JDK权限类型,并讨论了授予每个权限的风险。安全…

二路归并排序

Java 发表评论
1.算法解释 2.算法轨迹 3.算法的java实现 public static void merge(int a[], int low, int mid, int high) { int i = low, j = mid + 1; int[] aux = new int[a.length];//复制数组 for (int k = low; k < a.length; k++) { // 将a[low-high]复制到aux[low-high]中 aux[k] = a[k]; } for (int k = low; k <= high; k++) { if (i > mid)//左半边用尽,取右半边 a[k] = aux[j++]; else if (j …

Java深入 – Java 内存分配和回收机制

Java 发表评论
Java的GC机制是自动进行的,和c语言有些区别需要程序员自己保证内存的使用和回收。 Java的内存分配和回收也主要在Java的堆上进行的,Java的堆中存储了大量的对象实例,所以Java的堆也叫GC堆。 Java在垃圾收集的过程中,主要用到了分代收集算法,我会先讲一下常用垃圾收集算法。 常用垃圾收集算法 1. 标记-清除算法 这种垃圾收集算法思路非常简单,主要是首先标记出所有需要回收的对象,然后回收所有…

回溯法应用之迷宫问题

Java 发表评论
[size=medium]继续应用回溯法解决迷宫问题:问题赘述一下,从一点出发找到出口即可[/size]package 数据结构及算法.回溯法应用之迷宫问题;import java.util.Iterator;import 数据结构及算法.回溯法.Application;import 数据结构及算法.回溯法.Position;public class Maze implements Application{ private static final byte WALL=0; private static final byte CORRIDOR=1;//非墙,走廊 private stati…

Java算法之经典快速排序和随机快速排序

Java 发表评论
经典快排代码:  package cn.itcats.sort; import org.junit.Test; /** * (<R =R >R)归类快速排序,每次取数组最后一个数进行比较归类 * @author fatah */ public class QuickSort { public void quickSort(int arr[]) { if(arr ==null && arr.length < 2) { return; } quickSort(arr,0,arr.length-1); } public void quickSort(int[] arr, int L, int R) { if(L < R) { int [] p …

图的割点算法与割边算法

Java 发表评论
图的割点 在一个无向连通图中,如果删除某个顶点后,图不再连通(即任意两点之间不能相互到达),我们称这样的顶点为割点(或者称割顶)。 上图中的2号顶点就是割点,因为删除2号后,4,5不通,1,6也不通。 很容易想到的方法是:依次删除每一个顶点,然后用dfs或者bfs来检查图是否依然连通。如果删除某个顶点后,导致图不再连通,那么刚才删除的顶点就是割点。 这种方法的时间复杂度是O(N(N+M))。   下…

用java实现基于ID3算法的决策树分类器

Java 发表评论
完整工程代码下载地址: https://download.csdn.net/download/luohualiushui1/10949768 首先大家先了解一下深度学习中决策树的概念,如下: 决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机…

一看就懂的决策树算法(java实现)

Java 发表评论
首先来看下本次案例创建得到的决策树长什么样 用于创建这棵决策树的数据如下(第一行的每一列为特征名称,最后一列为分类) 色泽,根蒂,敲声,纹理,脐部,触感,好瓜 青绿,蜷缩,浊响,清晰,凹陷,硬滑,好瓜 乌黑,蜷缩,沉闷,清晰,凹陷,硬滑,好瓜 乌黑,蜷缩,浊响,清晰,凹陷,硬滑,好瓜 青绿,蜷缩,沉闷,清晰,凹陷,硬滑,好瓜 浅白,蜷缩,浊响,清晰,凹陷,硬滑,好瓜 青绿,稍蜷,浊响,清晰,稍凹,软粘,好瓜 乌黑,稍蜷,…

Java实现算法导论中图的广度优先搜索(BFS)和深度优先搜索(DFS)

对算法导论中图的广度优先搜索(BFS)和深度优先搜索(DFS)用Java实现其中的伪代码算法,案例也采用算法导论中的图。 import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.Map; import java.util.Map.Entry; public class GraphSearch { final static HashMap<String,LinkedList<String>> DGraph=new Has…

Java序列化机制和原理

Java 发表评论
Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以及Java序列化的算法,我们用一个实例来示范序列化以后的字节是如何描述一个对象的信息的。 序列化的必要性 Java中,一切都是对象,在分布…
« 上一页   下一页 »