懂技术更懂你!

看动画学算法之:双向队列dequeue

看动画学算法之:双向队列dequeue

简介 dequeue指的是双向队列,可以分别从队列的头部插入和获取数据,也可以从队列的尾部插入和获取数据。 本文将会介绍一下怎么创建dequeue和dequeue的一些基本操作。 双向队列的实现 和普...

看动画学算法之:队列queue

看动画学算法之:队列queue

简介 队列Queue是一个非常常见的数据结构,所谓队列就是先进先出的序列结构。 想象一下我们日常的排队买票,只能向队尾插入数据,然后从队头取数据。在大型项目中常用的消息中间件就是一个队列的非常好的实现...

看动画学算法之:栈stack

看动画学算法之:栈stack

简介 栈应该是一种非常简单并且非常有用的数据结构了。栈的特点就是先进后出FILO或者后进先出LIFO。 实际上很多虚拟机的结构都是栈。因为栈在实现函数调用中非常的有效。 今天我们一起来看学习一下栈的结...

看动画学算法之:linkedList

看动画学算法之:linkedList

简介 linkedList应该是一种非常非常简单的数据结构了。节点一个一个的连接起来,就成了linkedList。今天我们使用动画的方法一起来看看linkedList是怎么插入和删除的。 linked...

在java中使用SPI创建可扩展的应用程序

在java中使用SPI创建可扩展的应用程序

简介 什么是可扩展的应用程序呢?可扩展的意思是不需要修改原始代码,就可以扩展应用程序的功能。我们将应用程序做成插件或者模块。 这样可以在不修改原应用的基础上,对系统功能进行升级或者定制化。 本文将会向...

一文读懂jar包的小秘密

一文读懂jar包的小秘密

简介 java程序员每天不是在创建jar包就是在创建jar包的路上,并且各种依赖引用都是以jar包的形式展示的。但是随着现代IDE的出现,我想很多程序员已经基本上很少直接和jar包打交道了。 换句话说...

看动画学算法之:排序-基数排序

看动画学算法之:排序-基数排序

简介 之前的文章我们讲了count排序,但是count排序有个限制,因为count数组是有限的,如果数组中的元素范围过大,使用count排序是不现实的,其时间复杂度会膨胀。 而解决大范围的元素排序的办...

看动画学算法之:排序-count排序

看动画学算法之:排序-count排序

简介 今天我们介绍一种不需要作比较就能排序的算法:count排序。 count排序是一种空间换时间的算法,我们借助一个外部的count数组来统计各个元素出现的次数,从而最终完成排序。 count排序的...

看动画学算法之:排序-快速排序

看动画学算法之:排序-快速排序

简介 快速排序也采用的是分而制之的思想。那么快速排序和归并排序的区别在什么地方呢? 归并排序是将所有的元素拆分成一个个排好序的数组,然后将这些数组再进行合并。 而快速排序虽然也是拆分,但是拆分之后的操...