数据结构与算法
文章平均质量分 86
中间件兴趣圈
《RocketMQ技术内幕》一书作者、RocketMQ开源社区优秀布道师、CSDN2020博客之星TOP2,主打成体系剖析java中间件,已发布RocketMQ、Kafka、Dubbo、Sentinel、Canal、ElasticJob、ElasticSearch等15个专栏。
展开
-
《重学数据结构与算法》:请手写一个简易的单链表
我现在有点明白了,在面试过程中面试官有时会让我们手写代码,其实主要是**考验大家的基本功**,更是通过大众都熟悉的领域来考核大家的**体系化思维与应对思路**。原创 2022-01-25 08:00:00 · 501 阅读 · 0 评论 -
莫让“学院派”限制我们的思维:在数组的中间位置删除数据一定比链表慢?
《RocketMQ技术内幕》一书作者,RocketMQ官方社区优秀布道师、CSDN2020博客执之星Top2,与大家一起学习《数据结构与算法》原创 2021-08-31 23:10:22 · 1921 阅读 · 12 评论 -
排序二叉树JAVA版实现
1、排序二叉树特点 1)根节点的值大于等于左子树的节点。 2)根节点的值小于等于它右子树的节点。2、遍历二叉树的方法 1)先序遍历:先遍历根节点,然后遍历左子树,再遍历右子树 2)中序遍历:先遍历左子树,然后遍历根节点,再遍历右子树 3)后续遍历 如果要保证节点从小到大排序,采用 中序遍历; 目前代码中,已经实现 新增单个元素、删除单个元素、中序遍历整颗树。packag原创 2016-09-22 23:26:18 · 1229 阅读 · 0 评论 -
深入理解HashMap
1、HashMap 是什么HashMap是散列表,K-V键值对集合。2、HashMap 数据结构容量,增长因子,增长阔值, hashSeed 哈希因子// 容量 * loadFactor 增长因子 默认= 16 * 0.75 = 12 ,容量的增长,主要原因是尽量避免Hash冲突,就是为了将 Map.Entry线性分布在 Map.Entry[] talbe中,也就是尽量做到 ...原创 2016-10-19 17:21:17 · 4866 阅读 · 0 评论 -
Queue队列API与源码分析优先级队列PriorityQueue实现原理
Queue是队列,是一种先进先出的数据结构。java.lang.Queue接口方法声明如下:boolean add(E e) 在队列头部增加一个元素,如果容量已满,则抛出异常,成功则返回trueboolean offer(E e) 在队列头部增加一个元素,如果容量已满,则返回false,成功加入,返回true;E remove(); 将队列头部元素移出队列并...原创 2016-12-08 21:24:12 · 3178 阅读 · 1 评论 -
归并排序java实现
java实现归并排序,归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。原创 2017-06-05 11:15:09 · 1008 阅读 · 0 评论 -
二分查找算法java版实现(递归实现与非递归实现)
java版实现二分查找,分别采用递归方式,非递归方式实现。原创 2017-05-31 11:01:36 · 1789 阅读 · 0 评论 -
快速排序算法java版实现
本文使用java实现快速排序。原创 2017-06-02 16:19:11 · 4768 阅读 · 0 评论 -
java并发容器ConcurrentHashMap源码分析
1、ConcurrentHashMap 与 HashTableHashTable 是 HashMap 的线程安全版本,使用的是 HashTable 的对象锁,同一时刻只能有一个线程 新增元素,获取元素。锁等待多,并发度低。而 ConcurrentHashMap 采用的是锁分段机制,就是用多把锁,让每把锁管理一部分数据。怎么实现的呢?引入了段(Segment)数据结构。我们不妨来回忆一下Ha...原创 2016-11-29 12:16:22 · 2657 阅读 · 0 评论