数列 前缀 区间 算法

华为OD机试-区间叠加

import java.util.ArrayList; import java.util.TreeMap; import java.util.stream.IntStream; public class Main { public static void main(String[] args) { ......
区间

数据结构与算法 --- 排序算法(一)

## 引言 按照时间复杂度,将一些常见排序算法进行分类,分为以下三类: - $O(n^2)$:冒泡排序,插入排序,选择排序。 - $O(nlogn)$:快速排序,归并排序。 - $O(n)$:桶排序,计数排序,基数排序。 本篇文章讨论以下第一类:冒泡排序,插入排序,选择排序。 上一篇[数据结构与算法 ......
算法 数据结构 结构 数据

数据结构与算法 --- 排序算法(二)

title: 数据结构与算法 排序算法(二) category: 数据结构与算法 tags: 算法 updatedAt: 2023-05-18T15:29:17.847Z createdAt: 2023-05-13T14:43:31.656Z ## 引言 上一篇[数据结构与算法 排序算法(一)](h ......
算法 数据结构 结构 数据

数据结构与算法 --- “哨兵”思想

## 引言 哨兵思想是指在算法中使用一个特殊值来检测或标记某些条件的发生,它的目的是为了简化代码,并使其更容易理解,常常用于在循环中优化边界条件的判断。 ## 介绍 在算法中,"哨兵"思想是指在循环中设置一个特殊的元素(称为哨兵),以便在循环过程中能够更高效地处理某些边界情况或结束条件。 这种思想可 ......
哨兵 数据结构 算法 思想 结构

数据结构与算法 --- 递归(一)

## 什么是递归? **递归(Recursion)** 是一种解决问题的方法,它将问题分解为更小的子问题,并逐层解决这些子问题。递归算法的核心思想是:**一个函数可以直接或间接地调用自身**。通过这种自我调用,我们可以用简洁的代码来解决复杂问题。 ## 满足递归的条件 一般来说,满足下面三个条件就可 ......
数据结构 算法 结构 数据

数据结构与算法 --- 递归(二)

## 引言 上文[数据结构与算法 递归(一)](https://niuery.com/post/51) 讲述了什么是递归算法,如何编写递归算法及如何写好递归算法,本文着重讲述一下如何避免递归过深导致的堆栈溢出问题。 ## 探究产生堆栈溢出的原因 函数调用采用**函数调用栈**来保存当前“快照”(局部 ......
数据结构 算法 结构 数据

数据结构与算法 --- 组数、链表、栈和队列(一)

数组、链表、栈和队列是四种基础数据结构,他们是高级、复杂的数据结构和算法的基础。本篇先来讲述**数组,链表,及算法的优化策略**。 ### 数组 #### 定义 **数组:数组是一种线性表数据结构,它用一组连续的内存空间存储一组具有相同类型的数据。** 定义中有三个关键词: - **线性表** - ......
数据结构 队列 算法 结构 数据

数据结构与算法 --- 组数、链表、栈和队列(二)

继[数据结构与算法 组数、链表、栈和队列(一)](https://niuery.com/post/41)讲解完数组,链表及算法的优化策略之后,接下来继续讲解**两种特殊的线性表结构,栈和队列**。 ## 栈 对“栈”有一个很形象的比喻,栈就像一摞叠在一起的盘子,放盘子时,只能放在上面,不能将盘子插入 ......
数据结构 队列 算法 结构 数据

数据结构与算法 --- 算法绪论

# 开场白 算法介绍从一个简单加法开始,现要求写一个求1+2+3+..+100的结果的程序,那我可以这样写: ```csharp int count = 100; int sum = 0; for (int i =1; i 这就是最简单的程序之一,这就是算法。但是它是最优的吗?是最高效的吗? 儿时数 ......
算法 数据结构 绪论 结构 数据

数据结构与算法 --- 复杂度分析专题(一)

## 意义 算法复杂度分析的意义在于评估算法的执行效率,找出最优解决方案,是优化算法和改进程序性能的基础。通过对算法的时间复杂度和空间复杂度进行分析,可以帮助我们预估该算法运行所需的资源,从而提高程序的性能。 ## 大O复杂度表示法 ### 例1 有如下代码 ```csharp 1 public i ......
复杂度 数据结构 算法 结构 专题

数据结构与算法 --- 复杂度分析专题(二)

title: 数据结构与算法 复杂度分析专题(二) category: 数据结构与算法 tags: 算法 updatedAt: 2023-05-13T12:54:18.943Z createdAt: 2023-04-09T13:52:05.115Z ## 引言 在上一篇[复杂度分析专题(一)](ht ......
复杂度 数据结构 算法 结构 专题

C语言中的排序算法及其实现方法

C语言中的排序算法及其实现方法 排序算法是计算机科学中的重要部分,它们在数据处理和算法设计中起着关键作用。在C语言编程开发中,掌握不同的排序算法及其实现方法对于提高代码质量和性能至关重要。本文将围绕C语言中的排序算法展开讨论,介绍几种常见的排序算法及其实现方法。 1C语言中的排序算法及其实现方法 首 ......
算法 语言 方法

机器学习实战5-KMeans聚类算法

# 概述 聚类 VS 分类 ![3.png](https://img1.imgtp.com/2023/08/12/TLpVN5O2.png) ![5.png](https://img1.imgtp.com/2023/08/12/HAO6YrvZ.png) 有监督学习 VS 无监督学习 ![4.png ......
算法 实战 机器 KMeans

分治算法——241. 为运算表达式设计优先级

分治思路:对于一个算式来说,总是可以根据运算符分为左右两部分算式,接着分别计算结果并合并;每一个结果都是一个数组,包含这个算式的所有可能结果,计算时将左右两部分排列组合;递归的终点是字符串是纯数字(即分到一个算式中只剩下一个数字),直接返回。 比如示例中的2*3-4*5,有下面的分法: 1、分为2与 ......
优先级 表达式 算法 241

Raft 算法

> 论文 《In Search of an Understandable Consensus Algorithm》,发表于2014年 相比于 Paxos,Raft 最大的特性就是易于理解。为了达到这个目标,Raft主要做了两方面的事情: 1. 问题分解:把共识算法分为三个子问题,分别是领导者选举 ( ......
算法 Raft

文心一言 VS 讯飞星火 VS chatgpt (75)-- 算法导论7.2 4题

# 四、如果用go语言,银行一般会按照交易时间来记录某一账户的交易情况。但是,很多人却喜欢收到的银行对账单是按照支票号码的顺序来排列的。这是因为,人们通常都是按照支票号码的顺序来开出支票的,而商人也通常都是根据支票编号的顺序兑付支票。这一问题是将按交易时间排序的序列转换成按支票号排序的序列,它实质上 ......
文心 导论 算法 chatgpt VS

算法刷题:数组题(持续更)

算法刷题系列: - [算法刷题:链表题(持续更)](https://www.cnblogs.com/luoyicode/p/17606982.html) *** 力扣链接: [删除有序数组中的重复项](https://leetcode.cn/problems/remove-duplicates-fr ......
数组 算法

C#快速排序算法

快速排序实现原理 快速排序(Quick Sort)是一种常用的排序算法,它基于分治的思想,通过将一个无序的序列分割成两个子序列,并递归地对子序列进行排序,最终完成整个序列的排序。 其基本思路如下: 选择数组中的一个元素作为基准(pivot)。 将数组中小于等于基准的元素放在基准的左边,将大于基准的元 ......
算法

为什么会变成这样呢? #3(并查集维护区间)

给定长度为 $n$ 的字符串 $S$ 以及 $m$ 个区间 $[l_i, r_i]$,记 $T=S[l_1,r_1]+\cdots+S[l_m,r_m]$,其中 $S[x,y]$ 表示从第 $x$ 个字符到第 $y$ 个字符的子串。求如何重新排列 $S$ 中字符的顺序使得 $T$ 的字典序尽可能大。 ......
区间

[算法考研笔记]mm算法随笔[成绩划分][回溯0-1][得分][字段和][聪明小偷][股票买卖]

# mm算法随笔 ## 学习笔记(回溯算法) 1. 回溯 递归1.递归的下面就是回溯的过程 2. 回溯法是一个 纯暴力的 搜索、有的时候暴力求解都没有办法,用回溯可以解决。 3. 回溯法解决的问题: * 组合问题 如:1234 两两组合 * 切割问题 如:一个字符串有多少个切割方式 ,或者切割出来是 ......
算法 考研笔记 字段 得分 小偷

a.LD编辑距离算法

# LD算法 参考文档:https://www.cnblogs.com/grenet/archive/2010/06/03/1750454.html ## 原理 LD算法(Levenshtein Distance)又成为编辑距离算法(Edit Distance)。它是以字符串A通过插入字符、删除字符 ......
算法 LD

关于前缀和和差分的理解应用

前缀和和差分是互相正逆运用的产物。2023-08-13 00:30:28 1.一维前缀和 令 a 数组 b[i] 代表 b[1]+b[2]+b[3]+…+b[i] Q:问 b[l] 到 b[r] 的和 A: O(n),核心步骤: 在读取b每步都记录 a[i] = b[i]+a[i-1],最后只要输出 ......
前缀

基于GMM高斯混合模型的语音信息身份识别算法的matlab仿真

1.算法理论概述 一、引言 语音信息身份识别是指通过声音信号对个体进行身份识别的过程。目前,语音信息身份识别已经成为语音处理领域的一个热门研究方向。在语音信息身份识别中,高斯混合模型(GMM)是一种被广泛应用的方法。本文将详细介绍基于GMM的语音信息身份识别算法的实现步骤和数学原理。 二、GMM模型 ......
算法 语音 模型 身份 matlab

前缀和

![](https://img2023.cnblogs.com/blog/1892439/202308/1892439-20230812214348694-366989869.png) ![](https://img2023.cnblogs.com/blog/1892439/202308/18924 ......
前缀

acwing 116.飞行员兄弟 (算法竞赛进阶指南 p48 t1 ) 题解

###原题链接 https://www.acwing.com/problem/content/description/118/ ### 题目描述 “飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有16个把手的冰箱。 已知每个把手可以处于以下两种状态之一:打开或关闭。 只有当所有把手都打开时,冰箱才会 ......
题解 飞行员 算法 兄弟 指南

区间半群查询与 Ackermann 函数

最近在思考半在线卷积的复杂度有没有可能进一步优化, 决定先理清类似的问题以寻求经验. ## 一区间合并 如果询问的时候不能进行半群运算, 显然我们需要在预处理阶段处理所有答案, 必须进行 $O(n^2)$ 次计算. ## 二区间合并 如果询问的时候可以进行一次半群运算, 则可以把序列每次在中点处折开 ......
半群 区间 函数 Ackermann

树上前缀和

# 树上前缀和 ![](https://img2023.cnblogs.com/blog/2929862/202308/2929862-20230812211027005-1365077919.png) [模板传送门](https://www.luogu.com.cn/problem/P4427) ......
前缀

压缩算法

![](https://img2023.cnblogs.com/other/1622290/202308/1622290-20230812192630939-664255415.png) ## 思路 因为这个字符串可以被多层压缩,所以我们要找到最里层的中括号。刚开始的思路是利用栈,从前往后找,遇到` ......
算法

(转载)博客园的积分和排名算法探讨,积分是怎么计算的?

原文地址: http://www.cnblogs.com/huangcong/ 我们先来看看现行规则,用公式表示为: BlogScore = BeRead + 10 * BeComment + 50 * CommentBlogScore:博客积分BeRead:个人博客所有随笔和文章的阅读数之和BeC ......
积分 算法 博客

【总结】排序算法的时间复杂度和空间复杂度

###排序算法的时间复杂度和空间复杂度 最好时间复杂度最坏时间复杂度 平均时间复杂度 空间复杂度是否为稳定排序是否为原地排序 冒泡排序 $O(n)$ 初始数组正序 $O(n^2)$ 初始数组逆序 $O(n^2)$ $O(1)$ 原地使用数组,无额外内存开销 是 是 插入排序 是 是 选择排序 $O( ......
复杂度 算法 时间 空间