数据结构与算法

算法–时间轮

从定时任务说起 自然界中定时任务无处不在,太阳每天东升西落,候鸟的迁徙,树木的年轮,人们每天按时上班,每个月按时发工资、交房租,四季轮换,潮涨潮落,等等,从某种意义上说,都可以认为是定时任务。 大...

算法–一致性哈希

背景 随着时代的发展,数据量日俱增,相比纵向扩展单机的性能,人们更倾向于横向扩展,将多台一般的廉价机器组成集群来充当超级计算机,节省了大量的成本,代价是极大地增加了系统的复杂性。为了应对这些复杂性...

算法–布隆过滤器(Bloom Filter)

问题 我有个网站,拥有很多访客,当有用户访问时,我想知道这个ip是不是第一次访问我的网站,很快我们能够想到用哈希表来记录用户的访问记录,这样我们就可以在O(1)的时间复杂度内得到结果。 但是,如果我们的...

哈夫曼树

一、哈夫曼树的概念和定义 定义哈夫曼树之前先说明几个与哈夫曼树有关的概念: 路径: 树中一个结点到另一个结点之间的分支构成这两个结点之间的路径。 路径长度:路径上的分枝数目称作路径长度。 树的路径长...

STL排序算法

以前一直不重视排序算法,因为之前很少有应用场景,最近在面试过程中发现排序算法经常会被问到,有时在一些笔试或者面试题目中需要用到排序算法来解决问题,如果每次都自己手写排序,那么要相当耗时,而且我也不...

哈希表

之前看书了解到了哈希表,但由于从来没有在实际项目中应用,加上看的时间隔得比较久,所以对哈希表也可以说忘了大半,由于昨天去4399面试,被问了哈希表的一些细节,才发现自己原来已经忘了许多,所以找了一篇博...

排序算法总结(一)

1、排序算法的分类 在本文的开始,我们先来看看排序是如何分类的。 1.1、稳定排序和非稳定排序 在待排序的记录中,如果存在多个关键码相同的记录,经过排序后,这些记录的相对次序依然保持不变,即排序后这两...