数据结构
文章平均质量分 94
romantic_jie
学无止境,静无止学!!!
展开
-
逐步引出堆思想并实现优先级队列
先看一个再熟悉不过的算法题: 有一个长度为n的无序数组,元素为整形int值,如何找到前K(K <= n)个最小(或者最大)的元素。 相信任何一个从事IT编程的人都听过这个有趣的问题,俗称TopK问题。。。。 我们现在来分析解决这个问题(以得到前K个最小值为例): (注意,本文是以该问题一点一点引出堆思想,并没有深入优化topk问题的最优解,本文的重点是堆) 1.排序 首先,最容易想到的方法就是对无序数组进行排序,然后很容易得到前K个最小值。这样问题被转化成了数组排序,那么自然而然...原创 2020-08-04 16:40:26 · 324 阅读 · 0 评论 -
根据JDK源码理解hashmap的并发死循环
本文章,不是用来介绍所谓的hashmap的实现原理或者使用方法,而是就几个常见问题进行一下个人详细理解的阐述! 有关hashmap的几个问题: 1.hashmap的容量为什么是2的幂次方? 2.hashmap在插入元素的时候,采用的是头插还是尾插? 3.hashmap的默认容量是多少?什么时候扩容? 4.为什么hashmap在多线程情况下是不安全的?(有可能产生死循环) 其在什么情况下会...原创 2019-09-28 18:04:56 · 373 阅读 · 0 评论