深入浅出 算法 森林

【分布式技术专题】「分布式技术架构」一文带你厘清分布式事务协议及分布式一致性协议的算法原理和核心流程机制(Paxos篇)

概念简介 Paxos是一种基于消息传递具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一。 发展历史 Paxos算法的发展历史追溯到古希腊,当时有一个名为“Paxos“的小岛, 岛上采用一会的形式通过法令, 议会中议员通过信使进行消息传递,议员与信使都是兼职的,他们随时都 ......
分布式 技术 一致性 算法 架构

复杂度分析:如何分析、统计算法的执行效率和资源消耗

我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢?这里就要用到我们今天要讲的内容:时间、空间复杂度分析。 ......
复杂度 算法 效率 资源

算法学习笔记(19): 树上启发式合并(DSU on tree)

树上启发式合并 DSU on tree,我也不知道DSU是啥意思 这是一种看似特别玄学的优化 可以把树上部分问题由 $O(n^2)$ 优化到 $O(n \log n)$。 例如 CodeForces 600E。 又例如一道神奇的题: 适用情况 可以离线的部分树上问题。 需要子树上的所有信息,但是信息 ......
算法 笔记 tree DSU 19

深入理解事务

事务将应用程序的多个读、写操作捆绑在一起成为一个逻辑执行单元。即事务中的所有读写是一个执行的整体,整 个事务要么成功(提交)、要么失败(中止 或者 回滚)。如果失败,应用程序可以安全地重试。 ......
事务

深入理解Go语言中的sync.Cond

1. 简介 本文将介绍 Go 语言中的 sync.Cond 并发原语,包括 sync.Cond的基本使用方法、实现原理、使用注意事项以及常见的使用使用场景。能够更好地理解和应用 Cond 来实现 goroutine 之间的同步。 2. 基本使用 2.1 定义 sync.Cond是Go语言标准库中的一 ......
语言 sync Cond

深入了解 JavaScript 内存泄漏

在任何语言开发的过程中,对于内存的管理都非常重要,JavaScript 也不例外。但是如果我们对内存泄漏没有什么概念,就有可能因为内存泄漏,导致许多问题。了解内存泄漏,如何避免内存泄漏,都是不可缺少的。 ......
JavaScript 内存

深入理解 Python 虚拟机:集合(set)的实现原理及源码剖析

在本篇文章当中主要给大家介绍在 cpython 虚拟机当中的集合 set 的实现原理(哈希表)以及对应的源代码分析。 ......
源码 原理 Python set

基于量子随机游走的图像加密算法

一、概述 量子随机游走是一种基于量子力学的随机游走模型,其具有良好的随机性和不可预测性,因此被广泛应用于密码学中。基于量子随机游走的图像加密算法是一种新兴的加密算法,其基本思路是将明文图像转换为量子态,通过量子随机游走对量子态进行加密,最后将加密后的量子态转换为密文图像。 二、算法流程 将明文图像转 ......
量子 算法 图像

图论算法

图论算法 第一节 基本概念 一、什么是图? 很简单,点用边连起来就叫做图,严格意义上讲,图是一种数据结构,定义为:graph=(V,E)。V是一个非空有限集合,代表顶点(结点),E代表边的集合。 二、图的一些定义和概念 (a)有向图:图的边有方向,只能按箭头方向从一点到另一点。(a)就是一个有向图。 ......
算法

深入理解需求分析的目标(C系架构设计法)

需求分析的目标:是尽可能准确、全面、深入的理解业务。 1:理解“尽可能准确” 首先,需求分析,要做的事,肯定是去理解业务,但是要达到什么样的程度,才算是我们理解了这个业务呢? 第一个是“尽可能”,尽可能的意思,就是你不太可能百分之百的、完整的、准确的去理解,做不到。我们只能说是尽自己最大努力去理解, ......
架构 需求 目标

推荐系统[八]算法实践总结V2:排序学习框架(特征提取标签获取方式)以及京东推荐算法精排技术实战

0.前言 「排序学习(Learning to Rank,LTR)」,也称「机器排序学习(Machine-learned Ranking,MLR)」 ,就是使用机器学习的技术解决排序问题。自从机器学习的思想逐步渗透到信息检索等领域之后,如何利用机器学习来提升信息检索的性能水平变成了近些年来非常热门的研 ......
算法 实战 框架 特征 标签

Q-M(Quine-McCluskey)两级逻辑化简算法原理解析

转载请务必注明出处:https://www.cnblogs.com/the-wind/p/15764283.html,感谢合作。 1 背景介绍:两级逻辑 香农在他的硕士论文[1]中提出了开关电路的综合方法,其中提到香农展开定理,即任意n变量布尔函数$f(x_1,...,x_{n-1},x_n)$都可 ......

【深入浅出 Yarn 架构与实现】4-5 RM 行为探究 - 启动 ApplicationMaster

本节开始,将对 ResourceManager 中一些常见行为进行分析探究,看某些具体关键的行为,在 RM 中是如何流转的。本节将深入源码探究「启动 ApplicationMaster」的具体流程。 ......

【深入浅出 Yarn 架构与实现】4-6 RM 行为探究 - 申请与分配 Container

本小节介绍应用程序的 ApplicationMaster 在 NodeManager 成功启动并向 ResourceManager 注册后,向 ResourceManager 请求资源(Container)到获取到资源的整个过程,以及 ResourceManager 内部涉及的主要工作流程。 ......
深入浅出 架构 Container 行为 Yarn

【数据结构与算法学习】线性表(顺序表、单链表、双向链表、循环链表)

实现语言:C++ 1. 线性表相关概念 线性表(Linear List) 是由n(n≥0)个具有相同特性(数据类型)的数据元素(结点)a1,a2,...,ai-1,ai,ai+1,...,an组成的有限序列。 其中,a1为线性起点(起始结点),an为线性终点(终端结点)。对于每一个数据元素ai,我们 ......
数据结构 线性 双向 算法 顺序

深入理解Spring的Bean定义对象BeanDefinition-面试重点

Spring注解这篇文章中讲到了Spring的组件,组件加载到Spring容器中也就是Spring容器中的Bean对象,想要更深理解Spring中的Bean对象,那对这个BeanDefinition一定要有深入的了解,它是构造出来Bean对象的一切基础,比如Bean的作用域,Bean的注入模型,Be ......
BeanDefinition 对象 重点 Spring Bean

【数据结构与算法学习】散列表(Hash Table,哈希表)

实现语言:C++ 1. 散列表 散列表,英文名称为Hash Table,又称哈希表、杂凑表等。 线性表和树表的查找是通过比较关键字的方法,查找的效率取决于关键字的比较次数。 而散列表是根据关键字直接访问的数据结构。散列表通过散列函数将关键字映射到存储地址,建立了关键字和存储地址之间的一种直接映射关系 ......
数据结构 算法 结构 数据 Table

局部异常因子(Local Outlier Factor, LOF)算法详解及实验

局部异常因子(Local Outlier Factor, LOF)通过计算样本点的局部相对密度来衡量这个样本点的异常情况,可以算是一类无监督学习算法。下面首先对算法的进行介绍,然后进行实验。 LOF算法 下面介绍LOF算法的每个概念,以样本点集合中的样本点$P$为例。下面的概念名称中都加了一个k-, ......
因子 算法 局部 Outlier Factor

LeetCode 周赛 334,在算法的世界里反复横跳

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 大家好,我是小彭。 今天是 LeetCode 第 334 场周赛,你参加了吗?这场周赛考察范围比较基础,整体难度比较平均,第一题难度偏高,第四题需要我们在算法里实现 “反复横跳”,非常有意思。 小彭的 And ......
算法 LeetCode 世界 334

JAVA重试机制多种方式深入浅出

重试机制在分布式系统中,或者调用外部接口中,都是十分重要的。 重试机制可以保护系统减少因网络波动、依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制。 为了方便说明,先假设我们想要进行重试的方法如下: @Slf4j @Component public class HelloServi ......
深入浅出 多种 机制 方式 JAVA

基于内容的推荐系统算法

基于内容的推荐算法是一种常用的推荐算法,它主要通过分析物品的特征(如文本、图片、视频等)来实现推荐。其核心思想是利用物品属性的相似性,将已经喜欢的物品的特征作为输入,推荐与该物品相似度高的其他物品。 基于内容的推荐算法仅考虑了单个用户对物品的偏好,而未考虑多个用户之间的交互和影响。此外,该算法在特征 ......
算法 内容 系统

【基数排序算法详解】Java/Go/Python/JS/C不同语言实现

说明 基数排序(RadixSort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在列表机(Tabulation ......
基数 算法 语言 Python Java

【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现

【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现 说明 选择排序(Selection Sort)是一种简单直观的排序算法。跟冒泡、插入排序一样,它将数列分为已排序和待排序两个区间。首先在待排序序列中找到最小(或最大)的元素,追加到已排序序列中,然后继续从待排序序列中寻找最小( ......
算法 语言 Python Java Go

深入解读.NET MAUI音乐播放器项目(三):界面交互

UI设计的本质是对于产品的理解在界面中多种形式的映射,当需求和定位不同时,对相同的功能表达出了不同的界面和交互方式。作为播放器,界面可以是千差万别的。《番茄播放器》的iOS平台上我开发了传统版本,和基于手势播放的版本。它们界面不同,但用的同一个播放内核。作为播放内核项目,在MatoMusic.Cor... ......
界面 播放器 项目 音乐 MAUI

算法学习笔记(18): 平衡树(一)

平衡树 建议在清楚二叉搜索树的所有操作之后食用本文。本文将略过部分基础知识 本文主要会讲到4中较常用的平衡树: Treap FHQ-Treap(无旋Treap) Splay WBLT 其实WBLT不怎么常用,但是我个人最喜欢用 我将会在另一篇文章中讲述其他的平衡树,如AVL,红黑树,替罪羊树等。 可 ......
算法 笔记 18

深入了解视觉语言模型

人类学习本质上是多模态 (multi-modal) 的,因为联合利用多种感官有助于我们更好地理解和分析新信息。理所当然地,多模态学习的最新进展即是从这一人类学习过程的有效性中汲取灵感,创建可以利用图像、视频、文本、音频、肢体语言、面部表情和生理信号等各种模态信息来处理和链接信息的模型。 自 2021 ......
模型 视觉 语言

深入理解计算机系统(CSAPP)bomblab实验进阶之nuclearlab——详细题解

前言 本实验是难度高于bomblab的一个补充实验,该实验部分题目难度已经达到CTF入门水平,且这个实验据说是上一届的某个学长原创,因此互联网上几乎找不到类似的题目。在间断地思考了几周后我最终完成了所有题目,并打算在这篇随笔里详细地给大家分享我的解题过程。 核弹样本(可本地断网运行):https:/ ......
题解 nuclearlab bomblab 计算机 系统

深入理解 Python 虚拟机:整型(int)的实现原理及源码剖析

在本篇文章当中主要给大家介绍在 cpython 内部是如何实现整型数据 int 的,主要是分析 int 类型的表示方式,分析 int 类型的巧妙设计。 ......
源码 原理 Python int

深入理解 Python 虚拟机:复数(complex)的实现原理及源码剖析

在本篇文章当中主要给大家介绍在 cpython 虚拟机当中是如何实现 复数 complex 这个数据类型的,这个数据类型在 cpython 当中一应该是一个算比较简单的数据类型了,非常容易理解。 ......
复数 源码 原理 complex Python

【LeetCode回溯算法#08】递增子序列,巩固回溯算法中的去重问题

递增子序列 力扣题目链接(opens new window) 给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。 示例 1: 输入:nums = [4,6,7,7] 输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6 ......
算法 序列 LeetCode 问题 08