算法
songwenbinasdf
这个作者很懒,什么都没留下…
展开
-
KMP,深入讲解next数组的求解
前言 之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k;但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看算法导论,32章 字符串匹配虽然讲到了对前后缀计算的正确性,但是大量的推理证明不大好理解,没有与程序结合起来讲。今天我在这里讲一讲我的一些理解,希望大家多多指教,如果有不清楚的或错误的请给我留言。转载 2017-11-19 10:55:35 · 286 阅读 · 0 评论 -
红黑树
/** From CLR 新增一个节点之后需要修正树的结构*/ private void fixAfterInsertion(Entry<K,V> x) { x.color = RED;//默认置成红色,这样做为了把问题简单化,可以考虑尽量少的情况 while (x != null && x != root &...原创 2018-07-18 09:57:25 · 181 阅读 · 0 评论 -
一致性hash算法
package arithmetic;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.SortedMap;import java.util.TreeMap;/** * 一致性hash算法 * 类名称: ConsistentHash * 类描述: ...原创 2018-07-10 10:51:19 · 186 阅读 · 0 评论 -
字符串匹配算法之:有限状态自动机
阅读博客的朋友可以参看视频: 如何进入google,算法面试技能全面提升指南什么叫有限状态自动机先看一个图: 上面这个图描述的就叫一个有限状态自动机,图中两个圆圈,也叫节点,用于表示状态,从图中可以看成,它有两个状态,分别叫0和1. 从每个节点出发,都会有若干条边,当处于某个状态时,如果输入的字符跟该节点出发的某条边的内容一样,那么就会引起状态的转换。例如,如果当前状态处于0,输入是字符a,那么状...转载 2018-06-28 10:23:25 · 1372 阅读 · 0 评论 -
lucene 分配数组大小 (newSize + 1) & 0x7ffffffe
public static int oversize(int minTargetSize, int bytesPerElement) { if (minTargetSize < 0) { // catch usage that accidentally overflows int throw new IllegalArgumentException("inval...原创 2018-06-28 10:17:51 · 354 阅读 · 0 评论 -
分布式系统的Raft算法
文章地址:https://www.jdon.com/artichect/raft.html演示地址:http://thesecretlivesofdata.com/raft/原创 2018-07-03 15:31:09 · 277 阅读 · 0 评论 -
jdk8 hashcode 扰动函数
static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); }原创 2018-07-03 10:10:16 · 1100 阅读 · 0 评论 -
netty源码之 DefaultEventExecutorChooserFactory 之2的整数次幂设计
package io.netty.util.concurrent;import io.netty.util.internal.UnstableApi;import java.util.concurrent.atomic.AtomicInteger;/** * Default implementation which uses simple round-robin to choose next {@...原创 2018-06-01 09:37:30 · 463 阅读 · 0 评论 -
如何通俗易懂地解释卷积?
作者:鱼腻链接:https://www.zhihu.com/question/22298352/answer/91131073来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。关于卷积的一个血腥的讲解比如说你的老板命令你干活,你却到楼下打台球去了,后来被老板发现,他非常气愤,扇了你一巴掌(注意,这就是输入信号,脉冲),于是你的脸上会渐渐地(贱贱地)鼓起来一个包,你的脸就...转载 2018-04-26 16:44:31 · 196 阅读 · 0 评论 -
理解分布式id生成算法SnowFlake
分布式id生成算法的有很多种,Twitter的SnowFlake就是其中经典的一种。概述SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图:1位,不用。二进制中最高位为1的都是负数,但是我们生成的id一般都使用整数,所以这个最高位固定是041位,用来记录时间戳(毫秒)。41位可以表示241−1个数字,如果只用来表示正整数(计算机中...转载 2018-05-03 10:33:50 · 429 阅读 · 0 评论 -
sku组合查询算法探索
在前端领域,很少会遇到算法问题,这不能说不是一种遗憾。不过,随着前端处理的任务越来越复杂和重要,偶尔,也能遇到一些算法上的问题。本文,所要讨论的,就是这样一样问题。什么是SKU问题来自垂直导购线周会的一次讨论,sku组合查询,这个题目比较俗,是我自己取得。首先,看下什么是sku,来自维基百科的解释:最小存货单位(Stock Keeping Unit)在连锁零售门店中有时称单品为一个SKU,定义为保...转载 2018-04-16 09:05:40 · 2359 阅读 · 0 评论 -
如何快速实现高并发短文检索
转载地址:https://mp.weixin.qq.com/s/uCx0VUKzvagPVTpjy7Co1w 一、需求缘起 某并发量很大,数据量适中的业务线需要实现一个“标题检索”的功能: (1)并发量较大,每秒20w次 (2)数据量适中,大概200w数据 (3)是否需要分词:是 (4)数据是否实时更新:否 二、常见潜在解决方案及优劣 (1)数据库搜索法 具体方法:将标题数...转载 2018-07-18 16:03:30 · 244 阅读 · 0 评论