![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 51
momo_ibeike
这个作者很懒,什么都没留下…
展开
-
Java线程池配置
Android线程池来自Java的Executor接口,真正实现类是ThreadPoolExecutor。AsyncTask、OkHttp等中都涉及到线程池的配置因此线程池的配置十分重要。ThreadPoolExecutorpublic ThreadPoolExecutor(int corePoolSize, int maximumPool原创 2017-10-13 11:00:22 · 1390 阅读 · 0 评论 -
最短路径算法Dijkstra及和Prim算法区别
算法 @org.junit.Test public void testDijkstra() { int[][] adj = { {0, 2, INF, 1, INF, INF, INF}, {INF, 0, INF, 3, 10, INF, INF}, {4, INF...原创 2018-03-23 16:55:44 · 924 阅读 · 0 评论 -
AVL平衡二叉树
定义一棵AVL树是每个节点的左子树和右子树的高度最多差1的二叉查找树(空树高度定义为-1)旋转1.单旋转AVL树本质是一棵二叉查找树,所以AVL树的插入和删除其实和二叉查找树一致,只是每次插入和删除后要做平衡性调整。AVL树比较难的地方就是旋转维持树的平衡性。先以右旋为例,分析一下如何进行右旋(左旋是对称操作)。 /** * Rotates the su...原创 2018-03-06 10:43:15 · 155 阅读 · 0 评论 -
最小生成树-Prim算法
Prim算法1).输入:一个加权连通图,其中顶点集合为V,边集合为E; 2).初始化:U = {x},其中x为集合V中的任一节点(起始点),E = {}为空; 3).重复下列操作,直到U = V: a.在集合E中选取权值最小的边 <u, v>,其中u为集合U中的元 素,而v不在U集合当中,并且v∈V(如果存在有多条满足前述条件即具有相同权值的边,则可任意选取其中之一); ...原创 2018-03-22 16:34:43 · 174 阅读 · 0 评论 -
排序算法小计
冒泡排序public void bubbleSort(int[] array) { for (int j = array.length - 1; j > 0; j--) { boolean isOk = true; for (int i = 0; i < j; i++) { if (...原创 2018-03-22 14:12:31 · 186 阅读 · 0 评论 -
红黑树总结(转)
红黑树总结转载 2018-03-12 11:17:38 · 167 阅读 · 0 评论 -
二叉查找树代码实现
定义对于二叉查找树的每个节点X,它的左子树中的所有项的值都小于X项的值,而它的右子树中的所有项的值都大于X项的值insert递归实现/** * 递归实现 * 由于t引用该树的根,而根又在第一次插入的时候发生变化,因此insert被写成一个对新树根引用的方法。 * * @param x * @param t */ ...原创 2018-03-02 16:05:23 · 552 阅读 · 0 评论 -
二叉树的递归和非递归遍历
二叉树的递归遍历代码是很直观的,但是非递归遍历时不是那么直观,特别是中序遍历和后续遍历。中序遍历非递归实现中序遍历需要先访问左节点,然后访问根节点,最后访问右节点。 我们参考递归代码找寻思路:1. if (root == null) {return;} 2. midOrder(root.leftChild);3. System.out.println(root.data)...原创 2018-03-01 16:53:15 · 170 阅读 · 0 评论 -
中缀表达式、后缀表达式栈实现小记
这里实现了一个中缀表达式计算器: Stacktest.InfixCalculator.calculate("1 + 2 * 3 + ( 4 * 5 + 6 ) * 7") = 189 主要难点在于中缀表达式转换成后缀表达式,其算法原理为:遇见操作符 +,-,*,/,( 时,把符号栈不比当前操作符低的操作符出栈输出(如果出栈中遇到左括号,则停止出栈,因为表示当前正在处理闭括号),最后将当前...原创 2018-02-28 17:26:00 · 206 阅读 · 0 评论 -
遍历和递归实现双向链表反转
面试中经常问到双向链表的反转问题,下面参考《数据结构与算法分析》给出个LinkedList实现,同时讨论双向链表的反转实现。public class LinkedList<E> { private Node<E> head; private Node<E> foot; private int modCount; private...原创 2018-02-27 10:44:47 · 1756 阅读 · 0 评论 -
AsyncTask源码分析
AsyncTask是Android提供的一个异步加载任务的工具类,AsyncTask源码其实不是特别复杂,不过由于在Android3.0后进行了修改,导致AsyncTask的使用还是很容易入坑的。public final AsyncTask<Params, Progress, Result> execute(Params... params) { return executeOnEx原创 2017-10-13 12:28:54 · 176 阅读 · 0 评论 -
A*寻路算法Java实现
A*算法:把起始格添加到开启列表。 重复如下的工作:a) 寻找开启列表中F值最低的格子。我们称它为当前格。b) 把它切换到关闭列表。c) 对相邻的8格中的每一个 如果它不可通过或者已经在关闭列表中,略过它。反之如下。 如果它不在开启列表中。把当前格作为这一格的父节点。记录这一格的F,G,和H值,把它添加开启列表...原创 2018-03-27 14:01:03 · 2134 阅读 · 0 评论