算法 随想录 柠檬水 队列

【web_逆向04】MD5摘要算法

## MD5是一个非常常见的摘要(hash)算法,其特点就是小巧. 速度快. 极难被破解。所以, md5依然是国内非常多的互联网公司选择的密码摘要算法 - 1. 这玩意不可逆. 所以. 摘要算法就不是一个加密逻辑. - 2. 相同的内容计算出来的摘要应该是一样的 - 3. 不同的内容(哪怕是一丢丢丢 ......
算法 摘要 web MD5 MD

单调队列模板

好的,这是一个晴朗的夜晚。 - 苯荏水平不高甚至菜亖,博客仅仅写给自己避免自己忘记学了什么,也仅据我理解写出,不严谨,非常不严谨。 单调队列。 在原序列基础上,维护一个单调的序列。 单调队列中的元素在原序列中的相对位置不变,且在单调队列中的元素是单调的。 基本模板题:https://www.luog ......
队列 模板

python 实现队列

官方文档不推荐使用列表 因为列表删除第一个元素会把剩余元素向左移一位 速度很慢 官方推荐的是 collections下的deque 记录一下 防止忘记 from collections import deque d = deque(‘内容’,maxlength) 内容可以是推导式 也可以直接写内容 ......
队列 python

k\log_k N 极小值|k 分算法是 k 越大越好吗?

# 引入 我们有二分算法,就是: > **定义** > > 二分查找(英语:binary search),也称折半搜索(英语:half-interval search)、对数搜索(英语:logarithmic search),是用来在一个有序数组中查找某一元素的算法。 > > **过程** > > ......
算法 log_k log

如何在C语言中实现队列和堆栈的动态扩容

如何在C语言中实现队列和堆栈的动态扩容 队列和堆栈是在C语言中常用的数据结构,它们可以帮助我们高效地处理数据。然而,在实际编程中,我们经常会遇到数据量超过容量限制的情况。这时,我们需要实现队列和堆栈的动态扩容,以满足实际需求。 6如何在C语言中实现队列和堆栈的动态扩容 动态扩容是指在数据结构的容量不 ......
堆栈 队列 语言 动态

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

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

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

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

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

## 引言 按照时间复杂度,将一些常见排序算法进行分类,分为以下三类: - $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) 讲述了什么是递归算法,如何编写递归算法及如何写好递归算法,本文着重讲述一下如何避免递归过深导致的堆栈溢出问题。 ## 探究产生堆栈溢出的原因 函数调用采用**函数调用栈**来保存当前“快照”(局部 ......
数据结构 算法 结构 数据

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

# 开场白 算法介绍从一个简单加法开始,现要求写一个求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.luogu.com.cn/problem/P1540) ``` #include #include #include #include #include #include #include #include #define DEBUG using namespa ......
队列

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

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

C#快速排序算法

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

[算法考研笔记]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

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

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

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

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

循环队列

## C语言实现 ``` #include #define MAX_SIZE 10 typedef struct { int queue[MAX_SIZE]; int front; int rear; } CircularQueue; void initializeQueue(CircularQue ......
队列

TZOJ3326--Barn Repair(优先队列,贪心)

题目简述: 某天刮了一阵大风,把牛棚的门吹飞了,总共有s个牛棚,幸运的是并不是每个牛棚都有牛。现在你可以购买m块木板,商店里有各种型号的木板,木板长度为多少就需要多少金钱。木板用来给牛棚装上门。要求把所有有牛的牛棚都装上门,并且花的金钱最少。 给了一正整数C,接下来C行每行一个正整数,表示该牛棚有牛 ......
队列 Repair TZOJ 3326 Barn

压缩算法

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