算法
曾柯
keep learning
展开
-
Top K算法详解
应用场景: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。 假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。),请你统计最热门的10个查询串,要求使用的内存不能超过1G。必备知识:什么是哈希表? ...转载 2018-02-26 20:37:45 · 355 阅读 · 0 评论 -
01背包问题详解
0-1 背包问题:给定 n 种物品和一个容量为 C 的背包,物品 i 的重量是 wi,其价值为 vi 。问:应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大?分析一波,面对每个物品,我们只有选择拿取或者不拿两种选择,不能选择装入某物品的一部分,也不能装入同一物品多次。解决办法:声明一个 大小为 m[n][c] 的二维数组,m[ i ][ j ] 表示 在面对第 i 件物品,且背包容量...转载 2018-02-26 21:40:47 · 225 阅读 · 0 评论 -
一致性hash算法
一致性哈希算法,作为分布式计算的数据分配参考,比传统的取模,划段都好很多。在电信计费中,可以作为多台消息接口机和在线计费主机的分配算法,根据session_id来分配,这样当计费主机动态伸缩的时候,因为session_id缓存缺失而需要放通的会话,会明显减少。传统的取模方式例如10条数据,3个节点,如果按照取模的方式,那就是node a: 0,3,6,9node b: 1,4,7node c: 2...转载 2018-02-27 17:03:52 · 154 阅读 · 0 评论 -
bitmap算法和布隆过滤器
bitmap算法和布隆过滤器都是用来当数据量很大时用于信息的记录和去重的,但它们有相同的地方也有不同的地方,下面就先来介绍下bitmap算法:bitmap算法的思路是利用一个bit位图去记录信息是否存在,举个例子,假设你有一个数组[2,4,7,9],你如果用int型数组去记录它,那么它就需要4*4=16个字节,4*4*8=128个bit,但用bitmap算法存储就能节省很多空间,下面以[2,4,7...原创 2018-03-01 14:06:33 · 5039 阅读 · 0 评论 -
聊一聊模拟退火算法
最近在做华为的一个比赛,用到了退火算法来实现设备的最大资源利用率的分配问题,先来说下具体问题吧,这个问题是个典型的装箱问题,比如你有5个设备种类,每个种类需要占用一定量的资源1和一定量的资源2,现在你有很多箱子,每个箱子可以容纳一定的资源1和资源2,现在要保证用最少的箱子装配所有的设备,你要如何分配?这就是一个典型的装箱问题,解决思路有很多,典型的贪心算法或者动态规划都可以对其求解,但是贪心算法不...原创 2018-03-31 21:13:25 · 2955 阅读 · 0 评论