算法
文章平均质量分 91
「已注销」
这个作者很懒,什么都没留下…
展开
-
5分钟搞懂布隆过滤器,掌握亿级数据过滤算法
原文地址:码农在新加坡的个人博客本质上(Bloom Filter)是一种数据结构,比较巧妙的(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。可以一句话总结:然后你可能要问了,他都不一定存在了,那它有什么用。它虽然不保证100%存在,但是这个却是可以控制的,一般根据场景你可以设置一个可以接受的错误率,比如 0.0001(万分之一)原创 2022-07-13 20:46:17 · 2012 阅读 · 0 评论 -
LRU缓存机制,你想知道的这里都有
概述LRU是Least Recently Used的缩写,译为最近最少使用。它的理论基础为 “最近使用的数据会在未来一段时期内仍然被使用,已经很久没有使用的数据大概率在未来很长一段时间仍然不会被使用” 由于该思想非常契合业务场景 ,并且可以解决很多实际开发中的问题,所以我们经常通过LRU的思想来作缓存,一般也将其称为LRU缓存机制。原理实现LRU时,我们需要关注它的读性能和写性能,理想的LRU应该可以在O(1)的时间内读取一条数据或更新一条数据,也就是说读写的时间复杂度都是O(1)。此时很容易想到使原创 2021-12-27 12:55:59 · 1310 阅读 · 1 评论 -
Linux后台开发应该具备技能(二)
上一篇由于篇幅太大,编辑不方便。现补充一篇。后续会统一整理。上一篇地址:https://blog.csdn.net/majianfei1023/article/details/45337085一、Linux系统1、slab算法底层实现原理理解:Linux的伙伴算法把所有的空闲页框分组为11个块链表,每个块链表分别包含大小为1,2,4,8,16,32,64,128,256,51...原创 2019-06-21 16:39:35 · 1000 阅读 · 2 评论 -
关于面试中经常出现的根据一个随机数构造另外的随机数的解法
最近做了一些Tencent及几家公司的面试题,发现有一种关于产生随机数的类型的题目。看到多有大牛们做出来,而且效率很高,也有不知道怎么做的,最近根据几个产生随机数的题目整理一下,发现所有的类似题目可以用一种万能钥匙解决。故分享,欢迎发表不同看法,欢迎吐槽。题目一:给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。利用随机函数rand()函数生成一个等概率随机生成整数1到5的函...原创 2012-02-10 21:57:36 · 5984 阅读 · 7 评论 -
插入排序 希尔排序
插入排序(insertion sort)的基本原理是,每次将一条待排序的记录按其键大小插入到前面已排序好的子序列中的适当位置,知道全部记录都插入完成为止。它的过程算法导论比喻得很好,就如同打牌一样,手中有一些已经排好序的牌,然后从牌堆中抓一张新牌,从右到左依次比较,直到找到合适的位置放下。每次迭代的过程中,数组左边已排序好的数据长度逐渐增大,直到整个数组都排序好。左边已排好序的部分可以看成原创 2012-02-23 23:14:19 · 1279 阅读 · 4 评论 -
《算法导论》学习笔记--第六章 堆排序
堆排序在运行时间上像合并排序,为(n*logn)。在空间上像插入排序,是一种原地排序算法,在任何时候,数组找那个只有常数个元素储存在输入数组以外。这样,堆排序就把以上两种算法的有点结合起来。那么在深入堆排序之前先来列举一下常见的排序方法,插入排序,最简单直观的排序方法,时间复杂度最坏O(n2),合并排序,基于分治的一种排序算法,时间复杂度O(nlgn),但不是原地排序的,明显合并的时候...原创 2012-02-20 12:55:31 · 3016 阅读 · 2 评论 -
交换排序之快速排序
上一篇文章讲述了交换排序的一种,冒泡排序http://blog.csdn.net/majianfei1023/article/details/7289177,现在讲一讲选择排序的另外一种算法,快速排序。1.基本思想假设要排序的数组是Array[0]……Array[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它的数都放到它前面,所有比它大的数都放到它后面,这原创 2012-02-24 02:03:11 · 850 阅读 · 1 评论