算法
Java技术践行者
让我们一起在开发这条路,默默深耕,用技术改变生活
展开
-
top K问题
对top K类问题,通常比较好的方案是分治+Trie树/hash+小顶堆即先将数据集按照Hash方法分解成多个小数据集然后使用Trie树或者Hash统计每个小数据集中的query词频之后用小顶堆求出每个数据集中出频率最高的前K个数最后在所有top K中求出最终的top K。例如:有1亿个浮点数,如何找出其中最大的10000个?最容易想到的方法是将数据全部排序,然后在排...原创 2020-03-10 18:18:09 · 132 阅读 · 0 评论 -
Hash算法
在同一个版本的Jdk中,HashMap、HashTable以及ConcurrentHashMap里面的hash方法的实现是不同的HashMap采用的是位运算:当哈希表的大小为素数时,简单的取模哈希的结果会更加均匀,所以单从这一点上看,HashTable的哈希表大小选择,似乎更高明些。因为hash结果越分散效果越好。HashTable采用的是直接取模:在取模计算时,如果模数是2的幂,...原创 2020-03-10 18:15:21 · 126 阅读 · 0 评论 -
接口限流算法
漏桶算法漏桶(Leaky Bucket)算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有响应速率),当水流入速度过大会直接溢出(访问频率超过接口响应速率),然后就拒绝请求,可以看出漏桶算法能强行限制数据的传输速率因为漏桶的漏出速率是固定的参数,所以,即使网络中不存在资源冲突(没有发生拥塞),漏桶算法也不能使流突发(burst)到端口速率.因此,漏桶算法对于存在突发特性...原创 2020-03-10 18:16:48 · 163 阅读 · 0 评论