算法
文章平均质量分 92
敲代码的程序狗
这个作者很懒,什么都没留下…
展开
-
微信红包业务,为什么采用轮询算法?
目录前言负载均衡这个概念,几乎在所有支持高可用的技术栈中都存在,例如微服务、分库分表、各大中间件(MQ、Redis、MyCat、Nginx、ES)等,也包括云计算、云调度、大数据中也是炙手可热的词汇。负载均衡策略主要分为静态与动态两大类:但负载均衡算法数量并不少,本篇主要对于一些常用且高效的负载策略进行剖析。基本的负载算法如果聊到最基本的负载均衡算法,那么相信大家多少都有了解,例如:轮询、随机、权重等这类算法。特点就在于实现简单,先来快速过一遍基本的算法实现。轮询算法是最为简单、也最为常见的算法,也是大多数原创 2022-07-12 10:20:21 · 442 阅读 · 1 评论 -
阿里大神带你领略Java一致性算法的风骚!(Paxos、Zab、Raft、选举、NWR、Hash、Gossip)
一致性算法1. PaxosPaxos 算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。zookeeper 使用的 zab 算法是该算法的一个实现。 在 Paxos 算法中,有三种角色:Proposer,Acceptor,LearnersPaxos原创 2021-08-02 14:10:41 · 282 阅读 · 0 评论 -
【备战秋招冲击大厂】Java面试题系列—数据结构与算法
1. 数据结构定义数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。数组:物理存储单元上连续、顺序的存储结构 链表:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 队列:队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 栈:栈(stack)又名堆栈,它是一种原创 2021-07-23 15:10:45 · 324 阅读 · 0 评论 -
我是如何将贪心算法一步一步优化到88%+59%
一、题目描述分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例1输入: g = [1,2,3], s = [1,1] 输出: 1 解释: 你有三个孩子和两块小饼干,3个孩原创 2021-05-26 17:19:15 · 782 阅读 · 0 评论