- 博客(9)
- 收藏
- 关注
原创 面试常考算法题(三)--快速排序
面试常考算法题(三)–快速排序 快速排序 经典快速排序 快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 经典快排思路...
2018-09-24 15:31:20
1377
原创 面试常考算法题(二)--荷兰国旗问题
面试常考算法题(二)–荷兰国旗问题 荷兰国旗问题是面试中常考的一个题目,涉及到的思想并不是很复杂. 荷兰国旗问题 题目 给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。 要求额外空间复杂度O(1),时间复杂度O(N) 问题解析 最差解法 这个问题如果不考虑时间复杂度和空间复杂度的话,最简单的解法自然是使用辅助数...
2018-09-24 15:30:56
4065
1
原创 面试常考算法题(一)--四种排序方法以及小和问题
常用算法题练习(一) 引言 算法的重要毋庸置疑,在面试过程中或多或少的会被问到算法,这一个系列的文章虽然冠以常用这一称呼,但是并不意味着所有算法都很简单,这一篇文章是系列文章的第一篇,包括以下几个算法题,部分相对而言有点难度的题目会有所讲解. 冒泡排序,选择排序,插入排序源码 归并排序的细节讲解与复杂度分析 小和问题和逆序对问题 冒泡排序,选择排序,插入排序 冒泡排序 冒泡排序的思想就是将相...
2018-09-24 15:30:23
3756
原创 HashSet源码解析
HashSet HashMap实现原理 HashSet 是一个不允许存储重复元素的集合,它的实现比较简单,底层实际上是一个HashMap.使用HashMap的键存储使用者想要存入HashSet中的值,这样就可以保证set不会存储重复的元素了.所以,只要理解了 HashMap,HashSet 就毫无难度了。 成员变量 首先通过源代码了解下 HashSet 的成员变量: private tra...
2018-09-24 15:29:40
363
原创 ArrayList/Vector源码解析
引言 对于Java程序员而言,集合类框架是必须要掌握的,笔者前一段时间被问到了一个关于ArrayList如何在遍历list时删除特定元素的问题,当时没有立即回答上来.随后想起,还是看源码看的太少了,所以就有了这一篇关于ArrayList的解读. 那么在进行这篇文章的阅读之前,也希望读者们能够把这个问题思考一下,看看自己是否已经有了问题的答案吧! 以下代码打印列表中的偶数项,并将其...
2018-09-09 10:02:09
219
原创 LinkedList源码解析
引言 在前面的文章中, 我们对 ArrayList 做了较为详细的源码解读, 今天将在这篇文章中继续对 LinkedList 的源码作出解读, 本文中的 LinkedList 是基于 jdk1.8. LinkedList 底层分析 LinkedList 数据结构 如上图所示 LinkedList 底层是基于双向链表实现的, 其中 LinkedList 的头结点不存放数据,...
2018-09-09 09:45:17
356
原创 Java面试题之简答题(一)
Java面试题之简答题(一) 题目一 高并发下的SimpleDateFormat 题目内容 在一个有较大并发量的系统中,有人在某个公共类中书写了如下方法: public static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss"); public static...
2018-09-05 09:34:56
1130
原创 记一道很有意思的算法题---青蛙跳台阶问题
题目背景简介 这是博主最近准备秋招时看的剑指offer上的一道题目,题目不是很难,但是我觉得比较有意思,所以发在了博客上面. 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级…..它也可以跳上n级,求该青蛙跳上一个n级台阶总共有多少种方法 如果哪位路过的朋友觉得这道题比较有意思的话可以暂时先不看下面的分析,自己先尝试一下写这道题. 题目分析 在看到...
2018-08-01 09:52:14
2123
原创 HashMap源码深度解读
HashMap解读 在面试的过程中,面试官经常会向面试者提问关于HashMap的问题,今天我将在这篇文章中仔细介绍一下HashMap. jdk7中的HashMap 介绍一下HashMap及其put和set方法实现 HashMap是由数组加上链表的数据结构书写的,它使用key-value键值对形式存储数据,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个...
2018-07-29 09:32:33
723
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人