从定时任务说起 自然界中定时任务无处不在,太阳每天东升西落,候鸟的迁徙,树木的年轮,人们每天按时上班,每个月按时发工资、交房租,四季轮换,潮涨潮落,等等,从某种意义上说,都可以认为是定时任务。 大...
数据结构与算法
算法–一致性哈希
背景 随着时代的发展,数据量日俱增,相比纵向扩展单机的性能,人们更倾向于横向扩展,将多台一般的廉价机器组成集群来充当超级计算机,节省了大量的成本,代价是极大地增加了系统的复杂性。为了应对这些复杂性...
算法–布隆过滤器(Bloom Filter)
问题 我有个网站,拥有很多访客,当有用户访问时,我想知道这个ip是不是第一次访问我的网站,很快我们能够想到用哈希表来记录用户的访问记录,这样我们就可以在O(1)的时间复杂度内得到结果。 但是,如果我们的...
哈夫曼树
一、哈夫曼树的概念和定义 定义哈夫曼树之前先说明几个与哈夫曼树有关的概念: 路径: 树中一个结点到另一个结点之间的分支构成这两个结点之间的路径。 路径长度:路径上的分枝数目称作路径长度。 树的路径长...
【LeetCode(4)】找出两个有序数组的中数
原题目的描述: There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)). Example ...
【LeetCode(3)】查找最长的不包含重复字符的子串
LeetCode的第3题,给定一个字符串,找到其中的一个最长的字串,使得这个子串不包含重复的字符。 Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S...
STL排序算法
以前一直不重视排序算法,因为之前很少有应用场景,最近在面试过程中发现排序算法经常会被问到,有时在一些笔试或者面试题目中需要用到排序算法来解决问题,如果每次都自己手写排序,那么要相当耗时,而且我也不...
哈希表
之前看书了解到了哈希表,但由于从来没有在实际项目中应用,加上看的时间隔得比较久,所以对哈希表也可以说忘了大半,由于昨天去4399面试,被问了哈希表的一些细节,才发现自己原来已经忘了许多,所以找了一篇博...
排序算法总结(一)
1、排序算法的分类 在本文的开始,我们先来看看排序是如何分类的。 1.1、稳定排序和非稳定排序 在待排序的记录中,如果存在多个关键码相同的记录,经过排序后,这些记录的相对次序依然保持不变,即排序后这两...
快速排序的递归和非递归实现
首先参考《递归如何转换为非递归》,然后根据文中的思想将递归快排转换为非递归快排。 先来看看递归快速排序的代码: /*以递归的方式实现快速排序*/ void quick_sort(int array[],int left,int right) { if...