代码改变世界

java中有关Volatile的几个小题

2018-07-12 19:15 by lc_java, 1215 阅读, 0 推荐, 收藏, 编辑
摘要:1、java中能创建volatile数组吗? 能,java中可以创建volatile数组,不过只是一个指向数组的引用,而不是整个数组,如果改变引用指向的数组,将会受到volatile的保护,但是如果多个线程同时改变数组的元素,volatile 标示符就不能起到之前的保护作用了。 2、volatile 阅读全文

确定字符互异

2018-07-11 22:18 by lc_java, 306 阅读, 0 推荐, 收藏, 编辑
摘要:链接:https://www.nowcoder.com/questionTerminal/9618c2a9e8a14c3e82954ee14168f592?orderByHotValue=1&mutiTagIds=639&page=1&onlyReference=true来源:牛客网 请实现一个算法 阅读全文

堆排序算法

2017-11-30 18:28 by lc_java, 163 阅读, 0 推荐, 收藏, 编辑
摘要:package com.neuedu.algorithm; import java.util.Arrays; public class HeapSort { private static int array[]= {9,8,7,6,5,4,3,2,1}; //堆排序 public void heapSort(){ buildHeap(); System.out.printl... 阅读全文

归并排序算法Java实现

2017-11-30 18:27 by lc_java, 430 阅读, 0 推荐, 收藏, 编辑
摘要:一. 算法描述 归并排序采用了分治策略(divide-and-conquer),就是将原问题分解为一些规模较小的相似子问题,然后递归解决这些子问题,最后合并其结果作为原问题的解。 归并排序将待排序数组A[1..n]分成两个各含n/2个元素的子序列,然后对这个两个子序列进行递归排序,最后将这两个已排序 阅读全文

希尔排序算法Java实现

2017-11-30 18:25 by lc_java, 372 阅读, 0 推荐, 收藏, 编辑
摘要:希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列,所 阅读全文

选择排序算法Java实现

2017-11-30 18:24 by lc_java, 205 阅读, 0 推荐, 收藏, 编辑
摘要:一. 算法描述 选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。 以下面5个无序的数 阅读全文

插入排序算法Java实现

2017-11-30 18:21 by lc_java, 255 阅读, 0 推荐, 收藏, 编辑
摘要:一. 算法描述 插入即表示将一个新的数据插入到一个有序数组中,并继续保持有序。例如有一个长度为N的无序数组,进行N-1次的插入即能完成排序;第一次,数组第1个数认为是有序的数组,将数组第二个元素插入仅有1个有序的数组中;第二次,数组前两个元素组成有序的数组,将数组第三个元素插入由两个元素构成的有序数 阅读全文

最短路径之弗洛伊德算法

2017-11-15 18:59 by lc_java, 1810 阅读, 0 推荐, 收藏, 编辑
摘要:下图左部分是一个最简单的3个顶点连通网图。 先定义两个数组D[3][3]和P[3][3],D代表顶点到顶点的最短路径权值和的矩阵,P代表对应顶点的最小路径的前驱矩阵。在未分析任何顶点之前,我们将D命名为D-1 ,其实它就是初始的图的邻接矩阵。将P命名为P-1 ,初始化为图中所示的矩阵。 首先,我们来 阅读全文

快速排序算法Java实现

2017-10-19 19:10 by lc_java, 490 阅读, 0 推荐, 收藏, 编辑
摘要:1) 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行 示例: 分析 快速排序的时间主要耗费在划分操作上,对长度为k的区间进行划分,共需k-1次关键字的比较。 最坏情况是每次划分选 阅读全文

最短路径之迪杰斯特拉算法(Java)

2017-10-19 15:29 by lc_java, 598 阅读, 0 推荐, 收藏, 编辑
摘要:1)Dijkstra算法适用于求图中两节点之间最短路径 2)Dijkstra算法设计比较巧妙的是:在求源节点到终结点自底向上的过程中,源节点到某一节点之间最短路径的确定上(这也是我之前苦于没有解决的地方),其解决方法是通过比较每次循环中源节点到各个节点的权值来找出最小值即最短路径,然后再对各个权值进 阅读全文