算法 随想录 柠檬水 队列

排序算法

1. 常用排序 1.1 归并排序 1.2 快速排序 快速排序优化 1.3 堆排序 2. 低级排序 2.1 冒泡排序 2.2 直接插入排序 2.3 希尔排序 3. 基于比较的排序算法时间复杂度下限证明 4. 排序算法会出现不稳定的状态原因 5. 非比较排序 5.1 计数排序 5.2 桶排序 5.3 基 ......
算法

扁扁笨算法-AVL树的插入与删除

# 扁扁笨算法-AVL树的插入与删除 ## 扁扁笨简述 扁扁笨算法是将不平衡子树打成一条中序遍历的直链(实质是一条升序链),然后按照寻找中点并提起中点构造二叉树的一种朴素做法。扁扁笨算法是一种确定平衡树调整结构之后填入数字的辅助手段,本身并没有什么出彩的地方。 ## 理论简介 AVL树插入之后一般会 ......
算法 AVL

扁扁笨算法-B树的插入与删除

# 扁扁笨算法-B树的插入与删除 ## 扁扁笨简述 扁扁笨算法是将不平衡子树打成一条中序遍历的直链(实质是一条升序链),然后按照寻找中点并提起中点构造二叉树的一种朴素做法。扁扁笨算法是一种确定平衡树调整结构之后填入数字的辅助手段,本身并没有什么出彩的地方。 ## 理论简介 B树是一种强结构弱数据的数 ......
算法

【图论#02】岛屿数量,flood fill算法的代码实现与优化

### 岛屿数量 给你一个由 `'1'`(陆地)和 `'0'`(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 **示例 1:** ``` 输入:grid = [ ["1" ......
岛屿 算法 数量 代码 flood

使用MD5算法和sha512sum校验和检验文件完整性

[TOC] # 一.前言 在我们日常生活中,无论是下载文件、传输数据还是备份重要信息,如何确保数据的完整性始终是一个不能忽视的问题。本文将向大家介绍如何使用MD5算法和sha512sum校验和来进行文件完整性的验证。 # 二.MD5算法简介 MD5算法,全称Message-Digest Algori ......
算法 完整性 文件 MD5 512

c++算法之哈希表

啥是哈希表 哈希表,类似散列表,是一种存储数据的一种方式。只能说是有点奇葩。 他是通过将值转换成数组的下标,也就是f[x]=x的意思,大家估计都能理解吧😃。 所以他可以通过这样的方式存储后遍历数组就可以发现他家可以自动排序,而且只需O(n)时间复杂度。 但是所需要的空间式数据中的最大值。 输入数据 ......
算法

数据结构与算法八股

讲一讲插入排序 讲一讲冒泡排序 讲一讲快速排序 讲一讲堆排序 讲一讲归并排序 dp dp数组的定义及含义:dp[num1.length+1][num2.length+1],为什么要+1呢,因为我们要判断他与前面的关系涉及到i-1,所以遍历需要从1开始 return的是什么 如果初始化时候size+1 ......
八股 数据结构 算法 结构 数据

FlashAttention算法详解

这篇文章的目的是详细的解释Flash Attention,为什么要解释FlashAttention呢?因为FlashAttention 是一种重新排序注意力计算的算法,它无需任何近似即可加速注意力计算并减少内存占用。所以作为目前LLM的模型加速它是一个非常好的解决方案,本文介绍经典的V1版本,最新的 ......
FlashAttention 算法

【算法】用c#实现自定义字符串编码及围栏解码方法

编写一个函数/方法,它接受2个参数、一个字符串和轨道数,并返回ENCODED字符串。 编写第二个函数/方法,它接受2个参数、一个编码字符串和轨道数,并返回DECODED字符串。 然后使用围栏密码对其进行解码。 这种密码用于通过将每个字符沿着一组“竖状轨道”依次放在对角线上来对字符串进行编码。首先开始 ......
围栏 字符串 算法 字符 编码

MassTransit将消息移动到 _skipped 队列上

当MassTransit将消息移动到 _skipped 队列时,这是因为接收端点上未使用该消息类型。请确保您的消息已正确创建,并且具有相同的类型和命名空间:From the documentation。MassTransit对消息协定使用完整的类型名称,包括命名空间。在两个单独的项目中创建相同的消息 ......
队列 MassTransit skipped 消息

分布式共识算法之Raft设计与实现

### 如何理解分布式共识? 多个参与者 针对 某一件事 达成完全 一致 :一件事,一个结论 已达成一致的结论,不可推翻 ### 有哪些分布式共识算法? - Paxos:被认为是分布式共识算法的根本,其他都是其变种,但是 Paxos 论文中只给出了单个提案的过程,并没有给出复制状态机中需要的 mul ......
分布式 共识 算法 Raft

Bcrypt加密算法相关

### 简介 Bcrypt是一个跨平台的文件加密工具,由它加密的文件可在所有支持的操作系统和处理器上进行转移。它的口令必须是8至56个字符,并将在内部被转化为448位的密钥。spring-security内部就是使用这个算法来对用户密码加密的(BCryptPasswordEncoder)。 ### ......
算法 Bcrypt

CGAL入门——凸壳算法

一、凸壳算法 凸壳是能包含点集合的最小凸多边形,即凸壳是点集合的一个子集,将这个子集的点连接起来可以包含点集中所有的点。 二、数组中点的凸壳 #include <iostream> #include <CGAL/Exact_predicates_inexact_constructions_kerne ......
算法 CGAL

2023-08-20:用go语言写算法。给定一个由'W'、'A'、'S'、'D'四种字符组成的字符串,长度一定是4的倍数, 你可以把任意连续的一段子串,变成'W'、'A'、'S'、'D'组成的随意状

2023-08-20:用go语言写算法。给定一个由'W'、'A'、'S'、'D'四种字符组成的字符串,长度一定是4的倍数, 你可以把任意连续的一段子串,变成'W'、'A'、'S'、'D'组成的随意状态, 目的是让4种字符词频一样。 返回需要修改的最短子串长度。 完美走位问题。 输入:s = "QQQ ......
39 字符 倍数 段子 字符串

Prim算法是一种用于解决最小生成树问题的贪心算法。它通过逐步选择边来构建最小生成树,直到包含了所有的顶点。以下是Prim算法的Java代码示例:

```java import java.util.*; class PrimAlgorithm { private static final int INF = Integer.MAX_VALUE; public void primMST(int[][] graph) { int vertices ......
算法 Prim 示例 顶点 代码

Kruskal算法是一种用于寻找图的最小生成树的贪心算法。它通过按照边的权重递增的顺序选择边,并将其添加到生成树中,同时确保不会形成环路。

Kruskal算法可以通过生活中的例子来解释。我们可以将城市之间的道路网络看作是一个图,每个城市是一个顶点,道路是连接城市的边,而道路的长度可以看作是边的权重。假设我们想要修建一条连接所有城市的最小成本道路网络。 首先,我们需要找到连接城市的所有道路,并按照道路的长度进行排序。然后,我们从最短的道路 ......
算法 环路 权重 顺序 同时

扩展欧几里得算法

# 裴蜀定理 对于任意正整数 $a,b$,记 $g=(a,b)$,一定存在整数 $x,y$,使得 $ax+by=g$,且能凑出的数一定是 $g$ 的倍数。 首先由于 $a,b$ 都是 $g$ 的倍数,所以能凑出的数必定是 $g$ 的倍数。 关键在于怎么证明一定存在整数 $x,y$,使得 $ax+by ......
算法

STL容器和算法

[toc] # STL容器和算法 ## 基本概念 标准模板库,主要分为容器、算法、迭代器。 通过迭代器访问容器中的数据,并进行算法操作。 所有代码采用模板类和模板函数的方式。 ## 容器 ### 容器的分类 #### 序列式容器 每个元素都有固定位置,该位置取决于插入时机和地点,和元素值无关。 ve ......
算法 容器 STL

快速幂算法

# 快速幂 洛谷 P1226 【模板】快速幂||取余运算 ```c++ #include using namespace std; typedef long long ll; ll quickpow(ll a, ll b, ll p = 10) { // 计算a的b次方 if (b == 0) re ......
算法

算法总结

# 前言: 有关于算法的一切的大合集 # 基本数据结构及排序方法手撸 - 完全二叉树/满二叉树 - 红黑树 1. 节点分为红色或者黑色; 2. 根节点必为黑色; 3. 叶子节点都为黑色,且为null; 4. 连接红色节点的两个子节点都为黑色(红黑树不会出现相邻的红色节点); 5. 从任意节点出发,到 ......
算法

第二十三节 API(算法,lambda,练习)

# 常见的七种查找算法: ​ 数据结构是数据存储的方式,算法是数据计算的方式。所以在开发中,算法和数据结构息息相关。今天的讲义中会涉及部分数据结构的专业名词,如果各位铁粉有疑惑,可以先看一下哥们后面录制的数据结构,再回头看算法。 ## 1. 基本查找 ​ 也叫做顺序查找 ​ 说明:顺序查找适合于存储 ......
算法 lambda API

python语言算法设计培训

义务教育新课程标准要求信息科技课程要培养学生学生的核心素养,主要包括信息意识、计算思维、数字化学习与创新、信息社会责任。计算思维作为信息科技课程的核心素养的关键要素,充分彰显信息科技课的独特价值。 ......
设计培训 算法 语言 python

编程随想曲周刊(第42期)

这里记录每周的所见所闻,周日发布。点击阅读原文可以直接访问文章链接。 # 编程 1. [科技爱好者周刊#267:5G 的春天要来了](https://mp.weixin.qq.com/s/IJ4BbkGLg658jX7GtJckJw) 2. [灰狐和他的朋友们](https://huihoo.com ......
随想曲 随想 周刊

消息队列的短时积压

# Kafka消息积压 消费者的消费能力不足 ![](https://img2023.cnblogs.com/blog/2279078/202308/2279078-20230820115715665-601868648.png) ## 首先的解决方案 - 水平扩容消费者 - 将中间件的进行扩容 - ......
队列 消息

UFCFT4-15-3 加密系统算法

MODULAR PROGRAMMECOURSEWORK ASSESSMENT SPECIFICATION Module DetailsModule CodeUFCFT4-15-3 Run sem 3FIRST SIT 2023/24 Module Title CryptographyModule L ......
算法 UFCFT4 系统 UFCFT 15

基础入门-算法分析&传输加密&数据格式&密文存储&代码混淆&逆向保护

基础入门-算法分析&传输加密&数据格式&密文存储&代码混淆&逆向保护 基础入门-算法分析&传输加密&数据格式&密文存储&代码混淆&逆向保护传输数据-编码型&加密型等传输格式-常规&JSON&XML等密码存储-Web&系统&三方应用代码混淆-源代码加密&逆向保护加密:1.常见加密编码进制等算法解析2. ......
amp 密文 算法 代码 格式

c++算法之动态规划:01背包

什么是动态规划? 动态规划算法(dynamic programing),是一种由递推为基础的比贪心更稳定的一种优化策略,为运筹学的一部分。就是通过以递推为基础的手段非暴力求出最值。 它的总体思想其实就是一个比较过程:假如你有一个数据,它的价值是x,代价为y,如果用动态规划就是和你不加这个元素和你加上 ......
算法 背包 动态

RSA 加密算法

> 博客地址:https://www.cnblogs.com/zylyehuo/ * ![](https://img2023.cnblogs.com/blog/3071480/202308/3071480-20230820003856278-1422713888.png) * ![](https:/ ......
算法 RSA

欧几里得算法(辗转相除法)-- 实现分数计算

> 博客地址:https://www.cnblogs.com/zylyehuo/ ```python # -*- coding: utf-8 -*- """ 利用欧几里得算法实现一个分数类,支持分数的四则运算(加法) """ class Fraction: def __init__(self, a, ......
辗转相除法 算法 分数

【学习笔记】(23) 常用距离算法详解

本文主要讲述这三种常见距离算法 :欧氏距离,曼哈顿距离,切比雪夫距离 。 ## 1.欧氏距离 **欧氏距离** 是最易于理解的一种距离算法。在数学的平面直角坐标系中,设点 $A,B$ 的坐标分别为 $A(x_1,y_1),B(x_2,y_2)$,求点 $A,B$ 之间的距离,我们一般会使用如下公式: ......
算法 常用 笔记 23