随笔分类 -  算法

摘要:JDK 1.8 HashMap是数组+链表+红黑树实现的,在阅读HashMap的源码之前先来回顾一下大学课本数据结构中的哈希表和红黑树。 什么是哈希表? 在存储结构中,关键值key通过一种关系f和唯一的存储位置相对应,关系f即哈希函数,Hash(k)=f(k)。按这个思想建立的表就是哈希表。 当有两 阅读全文
posted @ 2019-07-01 22:47 monkjavaer 阅读(738) 评论(0) 推荐(0) 编辑
摘要:一、类继承关系 PriorityQueue只实现了AbstractQueue抽象类也就是实现了Queue接口。 二、类属性 根据transient Object[] queue; 的英文注释: Priority queue represented as a balanced binary heap: 阅读全文
posted @ 2019-06-17 22:24 monkjavaer 阅读(540) 评论(0) 推荐(1) 编辑
摘要:树的基本术语 结点(node)由数据元素以及指向子树的地址构成。 若 X 结点有子树,则子树的根结点称为 X 的孩子(child)结点,相应地, X 称为其孩子的双亲(parents)结点,又称父母结点。 同一双亲的孩子结点之间互称兄弟(sibling)结点。 叶子(leaf)结点是指度为 0 的结 阅读全文
posted @ 2019-06-17 20:13 monkjavaer 阅读(265) 评论(0) 推荐(0) 编辑
摘要:以下是测试了三种图片压缩方式,通过测试发现使用jdk的ImageIO压缩时间更短,使用Google的thumbnailator更简单,但是thumbnailator在GitHub上的源码已经停止维护了。 1、Google的thumbnailator pom.xml中引入依赖 测试源码: 输出:压缩时 阅读全文
posted @ 2019-02-22 22:16 monkjavaer 阅读(6830) 评论(0) 推荐(0) 编辑
摘要:下面题目是LeetCode算法:逆波兰表达式求值(java实现) 逆波兰表达式即后缀表达式。 题目: 有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式、同时支持括号。(假设所有的数字均为整数,不考虑精度问题) 计算工具: 测试: 阅读全文
posted @ 2018-10-30 21:05 monkjavaer 阅读(688) 评论(0) 推荐(0) 编辑
摘要:下面题目是LeetCode算法155题: https://leetcode.com/problems/min-stack/ 题目1:最小函数min()栈 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 阅读全文
posted @ 2018-09-23 08:47 monkjavaer 阅读(615) 评论(0) 推荐(0) 编辑
摘要:1.类适配器模式:通过多重继承来实现适配器功能。多重继承就是先继承要转换的实现类,再实现被转换的接口。 2.对象适配器模式:通过组合来实现适配器。 什么是适配器模式?或者说适配器模式有什么作用呢?上面已经定义的很清楚了。下面我们再用一张草图来更形象的描述这一设计模式。 这确实是一张草图,图中1就好比 阅读全文
posted @ 2018-08-31 22:34 monkjavaer 阅读(278) 评论(0) 推荐(0) 编辑
摘要:最近在用EasyUI中的tree遍历节点的时候用到了递归算法,现总结如下: * 递归算法:在函数里调用自身,但必须确定递归出口,即结束条件,不然就是无限循环; * 递归一般解决的问题: 1.数据的定义是按递归定义的(Fibonacci函数); 2.树的遍历,图的搜索; 3.回溯; * 递归的缺点: 阅读全文
posted @ 2015-10-30 16:29 monkjavaer 阅读(170) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示