#数据结构与算法

负载均衡--hash slot算法

上一篇说负载均衡的时候,提到redis是用一致性hash算法,但是有网友指出redis是用hashslot算法的,学业未精的我,又去学习一番。rediscluster有固定的16384个hashslot,对每个key计算CRC16值,然后对16384取模,可以获取key对应的hashslot。HASH_SLOT=CRC...

分布式理论之一:Paxos算法的通俗理解

维基的简介:Paxos算法是莱斯利·兰伯特(LeslieLamport,就是LaTeX中的"La",此人现在在微软研究院)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。Paxos算法目前在Google的Chubby、MegaStore、Spanner等系统中得到了应用,Hadoop中的ZooKeep...

五大常用算法之五:分支限界法

 分支限界法   类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大...

五大常用算法之四:回溯法

      回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。  回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并...

五大常用算法之三:贪心算法

 一、基本概念:      所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。     贪心算法没有固定的算法...

五大常用算法之二:动态规划算法

  一、基本概念   动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略   基本思想与分治法类似,也是将待求解...

五大常用算法之一:分治算法

https://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741370.html一、基本概念  在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题...

布隆过滤器(亿级数据过滤算法)

介绍我们以演进的方式来逐渐认识布隆过滤器。先抛出一个问题爬虫系统中URL是怎么判重的?你可能最先想到的是将URL放到一个set中,但是当数据很多的时候,放在set中是不现实的。这时你就可能想到用数组+hash函数来实现了。index = hash(URL) % table.len...

redis中5种数据类型的底层数据结构

阅读 redis设计与实现 一书的记录。未完待续。。。redis我们都知道有5种数据类型,分别是string,list,hash,set,zset,那么你知道它们的底层数据结构实现吗?redis底层有6种数据结构,分别是简单动态字符串(SDS),链表,字典,跳跃表,整数集合,压缩列表。每种数据类型都...

redis的底层数据结构

1、演示数据类型的实现2、简单动态字符串3、链表4、字典5、跳跃表6、整数集合7、压缩列表8、总结   上一篇博客我们介绍了 redis的五大数据类型详细用法,但是在Redis中,这几种数据类型底层是由什么数据结构构造的呢?本篇博客我们就来详细介绍Redis中五大数据类型的底层实现。回到顶部1、演示...
代码星球 代码星球·2020-12-10

五大常用算法简介

1、递归与分治递归算法:直接或者间接不断反复调用自身来达到解决问题的方法。这就要求原始问题可以分解成相同问题的子问题。示例:阶乘、斐波纳契数列、汉诺塔问题斐波纳契数列:又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F1=1,F2=1,Fn=...
代码星球 代码星球·2020-12-10

HMAC算法原理

HMAC算法是一种基于密钥的报文完整性的验证方法 ,其安全性是建立在Hash加密算法基础上的。它要求通信双方共享密钥、约定算法、对报文进行Hash运算,形成固定长度的认证码。通信双方通过认证码的校验来确定报文的合法性。 HMAC算法可以用来作加密、数字签名、报文验证等 。(我感觉实际情况中...
代码星球 代码星球·2020-12-10

大话数据结构(8) 串的模式匹配算法(朴素、KMP、改进算法)

 1.朴素的模式匹配算法2.KMP模式匹配算法  2.1KMP模式匹配算法的主体思路  2.2next[]的定义与求解  2.3KMP完整代码  2.4一道题目3.KMP模式匹配算法改进4.朴素算法和KMP算法的时间复杂度分析5.KMP算法next[]数组理解附: 正文字符串匹配给你两个字符串,寻找...

KMP算法最浅显理解——一看就明白

https://blog.csdn.net/starstar1992/article/details/54913261KMP算法看懂了觉得特别简单,思路很简单,看不懂之前,查各种资料,看的稀里糊涂,即使网上最简单的解释,依然看的稀里糊涂。 我花了半天时间,争取用最短的篇幅大致搞明白这玩意到底是啥。 ...

常见数据结构概要

数据结构分类:列表型---1.数组 2.链表 3.队列 4.栈数组【详解】开辟一片连续的空间,将元素依次放入其中;数组的好处:可以进行随机访问,只需要一个下标就可以访问到该元素;但插入和删除会比较耗费时间,插入和删除操作都需要将之后的元素进行整体的移动,腾出空间来进行对应的操作。链表【详解...
代码星球 代码星球·2020-12-09
首页上一页...4344454647...下一页尾页