随笔分类 - 算法与数据结构
摘要:线性稀疏索引(Kafka) 适用于 append only 的存储模式,利用有序性带来的二分搜索,加速查找指定 offset 的日志内容 树状索引 红黑树 特点 在内存中,红黑树任意字段的查询可以做到 logN 的复杂度 相比于二分搜索所需具备的有序性,在红黑树上做元素的调整和增删效率要高得多。对于
阅读全文
摘要:限流是对系统的一种保护措施。即限制流量请求的频率(每秒处理多少个请求)。一般来说,当请求流量超过系统的瓶颈,则丢弃掉多余的请求流量,保证系统的可用性。即要么不放进来,放进来的就保证提供服务。 计数器 计数器采用简单的计数操作,到一段时间节点后自动清零 package cache; import ja
阅读全文
摘要:先来先淘汰(FIFO) First In First Out,先来先淘汰。这种算法在每一次新数据插入时,如果队列已满,则将最早插入的数据移除。 可以方便的借助LinkedList来实现 package cache; import java.util.Iterator; import java.uti
阅读全文
摘要:分而治之 把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题,直到最后子问题小到可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换),大数据中的MR,现实中如汉诺塔游戏。 分治法对问
阅读全文
摘要:数据结构 概述 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。 划分 从关注的维度看,数据结构可以划分为数据的逻辑结构和物理结构,同一逻辑结构可以对应不同的存储结构。 逻辑结构反映的是数
阅读全文