首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
9龙
掘友等级
菜鸟成长之路
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
30
文章 30
沸点 0
赞
30
返回
|
搜索文章
最新
热门
感受lambda之美,推荐收藏,需要时查阅
一、引言二、java重要的函数式接口1、什么是函数式接口1.1 java8自带的常用函数式接口。1.2 惰性求值与及早求值2、常用的流2.1 collect(Collectors.toList())2.2 filter2.3 map2.4 flatMap2.5 max和min2…
java序列化,看这篇就够了
意义:序列化机制允许将实现序列化的Java对象转换位字节序列,这些字节序列可以保存在磁盘上,或通过网络传输,以达到以后恢复成原来的对象。序列化机制使得对象可以脱离程序的运行而独立存在。 使用场景:所有可在网络上传输的对象都必须是可序列化的,比如RMI(remote method…
告别复杂的流关闭
也许大家在使用流时因为未关闭、或者未正常关闭引发了很多问题。其实java7引入了自动关闭流机制,只是我们未使用而已。 我们直接将打开的流对象放到try的圆括号中,这样当流使用完毕时,会自动将流进行关闭。这样不仅省事而且避免了自行关闭可能带来的错误。 这么神奇吗?让我们来掀开这层…
快速排序及其优化
顾名思义,快速排序是实践中的一种快速排序算法,在C++或对Java基础类型的排序中特别有用。它的平均运行时间是O(NlogN);但最坏情形性能为O(N2)。我会先介绍快速排序过程,再讨论如何优化。 采用分治法,将数组分为两部分,并递归调用。将数组S排序的快排过程 返回quick…
java泛型中使用的排序算法——归并排序及分析
我们知道,java中泛型排序使用归并排序或TimSort。归并排序以O(NlogN)最坏时间运行,下面我们分析归并排序过程及分析证明时间复杂度;也会简述为什么java选择归并排序作为泛型的排序算法。 分割:递归地把当前序列平均分割成两半。 集成:在保持元素顺序的同时将上一步得到…
图解堆排序
优先队列可以用于以O(NlogN)时间排序,正如上一篇的求解topK问题中用到的思想一样,这种思想就是堆排序(heapsort)。 算法思想:通过将数组元素进行buildHeap进行堆序化(构建大顶堆);再对堆进行N-1次deleteMax操作。这里有个技巧,如果使用新的数组来…
面试题:求第K大元素(topK)【增强版】
在原来基础上增加了算法E。 这就是类似求Top(K)问题,什么意思呢?怎么在无序数组中找到第几(K)大元素?我们这里不考虑海量数据,能装入内存。 将数组中的元素升序排序,找到数组下标k-1的元素即可。这是大家最容易想到的方法,如果使用简单排序算法,时间复杂度为O(n^2)。…
最详细版图解优先队列(堆)
队列是一种FIFO(First-In-First-Out)先进先出的数据结构,对应于生活中的排队的场景,排在前面的人总是先通过,依次进行。 优先队列是特殊的队列,从“优先”一词,可看出有“插队现象”。比如在火车站排队进站时,就会有些比较急的人来插队,他们就在前面先通过验票。优先…
你知道希尔排序为什么可以打破二次时间界吗?
前面详解了如何优化冒泡排序?,图解选择排序与插入排序,这些简单排序算法平均时间复杂度都是O(n^2)。希尔排序是第一批打破二次时间屏障的算法之一。下面我们来分析为什么希尔排序可以打破二次时间复杂度。 逆序:具有性质i < j但 a[i] > a[j]的序偶(a[i],a[j])…
图解选择排序与插入排序
算法思想:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 共N-1趟,每趟都找到未排序的最小值,放到已排序的序列后面。 如图所示,每一趟找到未排序的最…
下一页
个人成就
文章被点赞
803
文章被阅读
141,363
掘力值
4,259
关注了
5
关注者
2,711
收藏集
1
关注标签
20
加入于
2019-02-15