摘要: 一、队列与优先队列的区别 队列是一种FIFO(First In First Out)先进先出的数据结构,对应于生活中的排队的场景,排在前面的人总是先通过,依次进行。 优先队列是特殊的队列,从“优先”一词,可看出有“插队现象”。比如在火车站排队进站时,就会有些比较急的人来插队,他们就在前面先通过验票。阅读全文
posted @ 2019-04-19 22:02 9龙 阅读(163) 评论(0) 编辑
摘要: 引言: 前面详解了如何优化冒泡排序?,图解选择排序与插入排序,这些简单排序算法平均时间复杂度都是O(n^2)。希尔排序是第一批打破二次时间屏障的算法之一。下面我们来分析为什么希尔排序可以打破二次时间复杂度。 一、分析简单排序算法的下界 逆序:具有性质i < j但 a[i] > a[j]的阅读全文
posted @ 2019-04-16 21:06 9龙 阅读(291) 评论(3) 编辑
摘要: 上一篇详述了冒泡排序及其优化,有兴趣的可以看看: 如何优化冒泡排序? 一、选择排序(SelectionSort) 算法思想:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 阅读全文
posted @ 2019-04-15 15:06 9龙 阅读(155) 评论(0) 编辑
摘要: 一、冒泡排序(BubbleSort) 基本思想:从左到右使用相邻两个元素进行比较,如果第一个比第二个大,则交换两个元素。这样会使较大数下沉到数组的尾端,即较小数像泡泡一样冒到数组首端。 排序过程: 比较相邻两个元素,如果第一个比第二个大,则交换两个元素; 从左到右依次比较,直到最大数位于数组尾端; 阅读全文
posted @ 2019-04-14 14:38 9龙 阅读(188) 评论(0) 编辑
摘要: 修正前:new出来的对象,会在堆中存放真正的值; 大错特错!!!! 修正后:new出来的对象,堆存放的并不是真正的值,而是常量池中字符串常量的地址。 一、抛砖引玉 ​ 不知道大家在做面试题时是否会遇到关于String的题,记得校招时,楼主经常遇到String的题,有时候会很懵逼。先来看一个例子: p阅读全文
posted @ 2019-04-10 18:45 9龙 阅读(33) 评论(0) 编辑
摘要: 一、基础类型 Java 是一种强类型语言 。 这就意味着必须为每一个变量声明一种类型 : 在 Java 中,一共有 8种基本类型 ( primitive type ) , 其中有 4 种整型 、 2 种浮点类型 、 1 种用于表示 Unicode 编码 的字符单元的字符类型 char 和1 种用于表阅读全文
posted @ 2019-04-09 15:03 9龙 阅读(16) 评论(0) 编辑