![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法和数据结构
自律则自由
这个作者很懒,什么都没留下…
展开
-
图解排序算法-堆排序
预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,...转载 2018-10-22 10:52:49 · 122 阅读 · 0 评论 -
图解排序算法-3种简单排序(选择,冒泡,插入)
排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种语言的类库中都有n多种关于排序算法的实现。但是了解这些精妙的思想对我们还是大有裨益的。本文简单温习下最基础的三类算法:选择,冒泡,插入。 先定义个交换数组元素的函数,供排序时调用 /** * 交换数组元素 * @param arr * @param a ...转载 2018-10-22 11:03:45 · 220 阅读 · 0 评论 -
图解排序算法-快排
排序思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。图解:排序规则:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作为关键数据,赋值给key,即 key=A[0]; 3)从j开...转载 2018-10-22 15:29:09 · 485 阅读 · 0 评论 -
ConcurrentHashMap和SynchronizedMap – map表同步处理
在Java中,HashMap是一个非常有用的数据结构。几乎每一个Java应用都会使用到它。我之前的博文中有介绍过如何实现一个线程安全的缓存,在这个例子中,我就使用到了HashMap。然而,需要注意的是,HashMap本身并不是一个线程安全的Collection类。常见问题ConcurrentHashMap和Collections.synchronizedMap(Map)分别是什么? Co...转载 2018-11-23 11:40:14 · 503 阅读 · 0 评论 -
java集合基础
Collection<E>/集合Collection与CollectionsCollection是所有集合类的根接口; Collections是提供集合操作的工具类;集合类和数组不同,数组元素可以为基本数据类型值/对象引用; 集合元素只能为对象引用;Java的集合类由Collection接口和Map接口派生,Set代表无序集合,无序不可重复; List代表有序...转载 2018-11-26 14:27:30 · 162 阅读 · 0 评论