深入浅出 算法 森林

【深入浅出Spring原理及实战】「源码调试分析」结合DataSourceRegister深入分析ImportBeanDefinitionRegistrar的源码运作流程

每日一句 人的一生中不可能会一帆风顺,总会遇到一些挫折,当你对生活失去了信心的时候,仔细的看一看、好好回想一下你所遇到的最美好的事情吧,那会让你感觉到生活的美好。 注入案例代码 如何通过实现SpringBoot框架带有的ImportBeanDefinitionRegistrar注册器,注入我们想要注 ......

【深入浅出Seata原理及实战】「入门基础专题」带你透析认识Seata分布式事务服务的原理和流程(1)

分布式事务的背景 随着业务的不断发展,单体架构已经无法满足我们的需求,分布式微服务架构逐渐成为大型互联网平台的首选,但所有使用分布式微服务架构的应用都必须面临一个十分棘手的问题,那就是“分布式事务”问题。 在分布式微服务架构中,几乎所有业务操作都需要多个服务协作才能完成。对于其中的某个服务而言,它的 ......
原理 Seata 深入浅出 分布式 实战

【深入浅出Seata原理及实战】「入门基础专题」探索Seata服务的AT模式下的分布式开发实战指南(2)

承接上文 上一篇文章说到了Seata 为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。那么接下来我们将要针对于AT模式下进行分布式事务开发的原理进行介绍以及实战。 Seata AT模式 在AT、TCC、SAGA 和 XA 这四种事务模式中使用最多,最方便的 ......
实战 Seata 深入浅出 分布式 原理

算法学习笔记(8.1): 网络最大流算法 EK, Dinic, ISAP

网络最大流 前置知识以及更多芝士参考下述链接 网络流合集链接:网络流 最大流,值得是在不超过管道~~(边)~~容量的情况下从源点到汇点最多能到达的流量 抽象一点:使 $\sum_{(S, v) \in E} f(S, v)$ 最大的流函数被称为网络的最大流,此时的流量被称为网络的最大流量 有了最大流 ......
算法 笔记 Dinic 网络 ISAP

常见限流算法

简介 限流顾名思义是对流量大小进行限制,防止请求数量超过系统的负载能力,导致系统崩溃,起到保护作用。 现实生活中限流也随处可见,节假日出门旅行的人数会剧增,对于旅游景点来说往往会不堪重负,如果不进行人数控制,对整个景点的压力会非常大,游客的体验也会非常差,还容易出现安全事故等危险。 同样的在一线城市 ......
算法 常见

算法学习笔记(5): 最近公共祖先(LCA)

最近公共祖先(LCA) 最近公共祖先是树上的概念,不了解树的出门左转百度:树(数据结构名词)_百度百科 定义 假设我们需要求 x 和 y 的最近公共祖先,这里有多种等价的定义 路径x到y上深度最小的点 x和y公共祖先中深度最大的点 x和y在这棵树上距离最近的公共祖先结点 如果x就是y的祖先,则x本身 ......
祖先 算法 笔记 LCA

算法学习笔记(2): 欧拉定理与逆元

逆元 定义 逆元素,是指一个可以取消另一给定元素运算的元素 具体来说,对于实际的一些应用,如: 当我们想要求(11 / 3) % 10时 明显可以看出,是没有办法直接算的,这时就需要引入逆元 $a$ 在模$p$意义下的逆元记作 $a^{-1}$,也可以用inv(a)表示 应当满足 $$ a * a^ ......
定理 算法 笔记

又一重要进展发布!OpenMMLab算法仓支持昇腾AI训练加速

摘要:上海人工智能实验室的浦视开源算法体系(OpenMMLab)团队基于昇腾AI发布了MMDeploy 0.10.0版本,该版本已支持OpenMMLab算法仓库在昇腾异构计算架构CANN上的推理部署。 本文分享自华为云社区《又一重要进展发布!OpenMMLab算法仓支持昇腾AI训练加速》,作者:昇腾 ......
重要进展 算法 OpenMMLab

分布式协议与算法-Paxos算法

本文总结自:极客时间韩健老师的分布式协议与算法实战课程。 为什么要学习Paxos算法?其实关于这个问题的答案,每个人有不同的看法。其实对我来说,我认为当前很多常用的共识算法都是基于它改进,我学习它的初衷也是为了更好的去理解Raft算法。如果你想深入理解RAFT算法,博主在这里推荐蚂蚁金服的SOFAJ ......
算法 分布式 Paxos

机器学习经典算法总结

K 近邻算法(KNN)是一种基本分类和回归方法。KNN 算法的核心思想是如果一个样本在特征空间中的 k 个最相邻的样本中的大多数属于一个类别,那该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分类样本所属的类别。 ......
算法 机器 经典

分布式协议与算法-Quorum NWR

1.强一致性与最终一致性 1.1强一致性 强一致性能保证写操作完成后,任何后续访问都能读到更新后的值;强一致性可以保证从库有与主库一致的数据。如果主库突然宕机,我们仍可以保证数据完整。但如果从库宕机或网络阻塞,主库就无法完成写入操作。 1.2最终一致性 最终一致性只能保证如果对某个对象没有新的写操作 ......
分布式 算法 Quorum NWR

你知道哈希算法,但你知道一致性哈希吗?

前言 假如让你为淘宝这种数据量非常大的公司的设计一个可扩展的数据存储系统,你该如何存储和管理数据呢?总不能放在单个服务器上吧,肯定放不下,必然需要水平扩展。那么这样就带来一个问题,这个数据要存储在哪个服务器上呢?这就引入了本文的主题一致性哈希算法,可能你没听过,那么本文就通过一个简单的例子带你一步一 ......
一致性 算法

每个Java程序员都必须知道的四种负载均衡算法

前言 一般来说,我们在设计系统的时候,为了系统的高扩展性,会尽可能的创建无状态的系统,这样我们就可以采用集群的方式部署,最终很方便的根据需要动态增减服务器数量。但是,要使系统具有更好的可扩展性,除了无状态设计之外,还要考虑采用什么负载均衡算法,本文就带领大家认识以下常见的4种负载均衡算法。 欢迎关注 ......
程序员 算法 程序 Java

初探富文本之OT协同算法

初探富文本之OT协同算法 OT的英文全称是Operational Transformation,是一种处理协同编辑的算法。当前OT算法用的比较多的地方就是富文本编辑器领域了,常用于作为实现文档协同的底层算法,支持多个用户同时编辑文档,不会因为用户并发修改导致冲突,而导致结果不一致甚至数据丢失的问题。 ......
算法 文本

把KMP算法嚼碎!(C++)

相信不少人在学数据结构的时候都被KMP算法搞的迷迷糊糊的,原理看的似懂非懂,代码写不出来,或者写出来了也不知道为什么就可以这么写。本文力求尽可能通俗详细的讲解KMP算法,让你不再受到KMP算法的困扰。 暴力匹配的痛点 所谓暴力匹配,就是从文本串的首端开始依次检查子串是否与模式串匹配,如果不匹配就将模 ......
算法 KMP

[数据结构]KMP算法(含next数组详解)

#字符串匹配问题 给定一个字符串 s 和一个要匹配的模式串 p。模式串 p 有可能在 s 中多次出现,请求出模式串 p 在 s 中所有出现的起始位置。 #暴力匹配算法 BF ##算法思路 在面对字符串匹配问题时,很容易想到暴力求解。字符串匹配的暴力算法思路很简单,即在 s 中枚举起点 i,对于每个起 ......
数据结构 数组 算法 结构 数据

跳跃表数据结构与算法分析

目前市面上充斥着大量关于跳跃表结构与Redis的源码解析,但是经过长期观察后发现大都只是在停留在代码的表面,而没有系统性地介绍跳跃表的由来以及各种常量的由来。作为一种概率数据结构,理解各种常量的由来可以更好地进行变化并应用到高性能功能开发中。本文没有重复地以对现有优秀实现进行代码分析,而是通过对跳跃... ......
数据结构 算法 结构 数据

深入理解 OpenMP 线程同步机制

在本篇文章当中主要给大家介绍了一些经常使用的 OpenMP 用于线程之间同步的指令,并且用实际例子分析它内部的工作机制,以及我们改如何使用 nowait 优化程序的性能,以上就是本篇文章的所有内容希望大家有所收获! ......
线程 机制 OpenMP

Openmp Runtime 库函数汇总(下)——深入剖析锁🔒原理与实现

在本篇文章当中主要给大家分析了 OpenMP 当中两种主要的锁的实现,分别是 omp_lock_t 和 omp_nest_lock_t,一种是简单的锁实现,另外一种是可重入锁的实现。其实 critical 子句在 OpenMP 内部的也是利用上面的锁实现的。整个锁的实现还是非常复杂的,里面有很多耐人... ......
函数 原理 Runtime Openmp 128274

2023牛客寒假算法基础集训营3 A-I+K

比赛链接 A 题解 知识点:贪心。 把所有正偶数除成奇数,即可。 (人傻了没加 $x>0$ WA2 时间复杂度 $O(n)$ 空间复杂度 $O(1)$ 代码 #include <bits/stdc++.h> using ll = long long; using namespace std; int ......
算法 基础 2023 A-I

道长的算法笔记:状态机模型之股票系列问题

(一) 股票系列问题 所谓的股票问题,是一个动态规划状态机模型的系列问题,这些题目来自于LeetCode社区,这些问题非常经典,能够帮助我们理解动态规划的本质,这些问题大多初看之下会令人感觉无从下手,但是一旦掌握相应的方法划分状态之后,很快即可举一反三的写出相应的代码。 股票系列问题合集 LC121 ......
道长 算法 模型 状态 笔记

周而复始,往复循环,递归、尾递归算法与无限极层级结构的探究和使用(Golang1.18)

所有人都听过这样一个歌谣:从前有座山,山里有座庙,庙里有个和尚在讲故事:从前有座山。。。。,虽然这个歌谣并没有一个递归边界条件跳出循环,但无疑地,这是递归算法最朴素的落地实现,本次我们使用Golang1.18回溯递归与迭代算法的落地场景应用。 递归思想与实现 递归思想并非是鲜为人知的高级概念,只不过 ......
层级 周而复始 算法 Golang1 结构

【深入浅出 Yarn 架构与实现】4-3 RM 管理 NodeManager

本篇继续对 RM 中管理 NodeManager 的部分进行深入的讲解。主要有三个部分:检查 NM 是否存活;管理 NM 的黑白名单;响应 NM RPC 请求。 ......
深入浅出 NodeManager 架构 Yarn RM

【深入浅出 Yarn 架构与实现】4-2 RM 管理 Application Master

本篇将对 RM 中管理 Application Master 的部分进行深入的讲解。 下面将会介绍 RM 与 AM 整体通信执行流程,并对 RM 中涉及的对应服务进行具体讲解。 为了更好的学习本篇知识,建议先熟悉以下知识点,不了解的部分可翻到前面对应的文章进行学习: ......
深入浅出 Application 架构 Master Yarn

深入理解 dbt 增量模型

想要实现数据增量写入数据库,可以选择 dbt 增量模型。通过 dbt 增量模型,我们只用专注于写日增 SQL,不用去关注于如何安全的实现增量写入。 dbt 增量模型解决了什么问题 原子性写入:任何情况下,增量写入只有一个程序在写入。 假设增量程序已经上线,线上增量程序在执行的同时,开发也在本地执行增 ......
增量 模型 dbt

【深入浅出Sentinel原理及实战】「基础实战专题」零基础实现服务流量控制实战开发指南(2)

你若要喜爱你自己的价值,你就得给世界创造价值。 Sentinel的组成部分 Sentinel 主要由以下两个部分组成。 Sentinel核心库(Java客户端) :Sentinel的核心库不依赖任何框架或库,能够运行于Java 8及以上的版本的运行时环境中,同时对 Spring Cloud、Dubb ......

【Java技术专题】「原理专题」深入分析Java中finalize方法的作用和底层原理

finalize方法是什么 finalize方法是Object的protected方法,Object的子类们可以覆盖该方法以实现资源清理工作,GC在首次回收对象之前调用该方法。 finalize方法与C++的析构函数的区别 finalize方法与C++中的析构函数不是对应的,C++中的析构函数调用的 ......
原理 专题 Java 底层 finalize

做算法的这一年——2022年个人年终总结

做算法的这一年——2022年个人年终总结 前言 ​ 按照往年的惯例和园子的规矩,随着网易云音乐以及众多App的个人使用报告陆续出来,也到了自己该做个全年复盘总结的时候了。 这一年想起来好像是做了很多事情,但又好像什么都没有做,对着电脑想了许久,要怎么用一句话或者一个字来概括这一整年的过往与历程,奈何 ......
算法 个人 2022

基于K-means聚类算法进行客户人群分析

摘要:在本案例中,我们使用人工智能技术的聚类算法去分析超市购物中心客户的一些基本数据,把客户分成不同的群体,供营销团队参考并相应地制定营销策略。 本文分享自华为云社区《基于K-means聚类算法进行客户人群分析》,作者:HWCloudAI 。 实验目标 掌握如何通过机器学习算法进行用户群体分析; 掌 ......
算法 人群 K-means 客户 means

贪心算法Dijkstra

Dijkstra 最短路径问题 : 给定一个带权有向图 G = (V, E, W),同时给定一个源点 u (u ∈ V),我们要找出从源点 u 出发到其它各点的最短路径距离,并得出这些最短路径的具体路径有哪些边构成。 其实我们要求的就是从 源点 u 出发到 其它各点 str的最短路径所组成的路线网络 ......
算法 Dijkstra