算法programing dynamic动态
数据结构与算法 --- 排序算法(一)
## 引言 按照时间复杂度,将一些常见排序算法进行分类,分为以下三类: - $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语言中,动态内存分配和释放主要通过malloc()和free()函数实现。malloc()函数用于申请一块指定大小的内 ......
C语言中的排序算法及其实现方法
C语言中的排序算法及其实现方法 排序算法是计算机科学中的重要部分,它们在数据处理和算法设计中起着关键作用。在C语言编程开发中,掌握不同的排序算法及其实现方法对于提高代码质量和性能至关重要。本文将围绕C语言中的排序算法展开讨论,介绍几种常见的排序算法及其实现方法。 1C语言中的排序算法及其实现方法 首 ......
使用swagger时出现Unable to infer base url. This is common when using dynamic servlet registra
在使用Swagger的时候访问地址后出现了错误,`http://localhost:8001/swagger-ui.html` 一直在弹窗提示,还取消不了 ![image-20230813164309945](https://img2023.cnblogs.com/blog/2446184/2023 ......
机器学习实战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 ......
分治算法——241. 为运算表达式设计优先级
分治思路:对于一个算式来说,总是可以根据运算符分为左右两部分算式,接着分别计算结果并合并;每一个结果都是一个数组,包含这个算式的所有可能结果,计算时将左右两部分排列组合;递归的终点是字符串是纯数字(即分到一个算式中只剩下一个数字),直接返回。 比如示例中的2*3-4*5,有下面的分法: 1、分为2与 ......
Raft 算法
> 论文 《In Search of an Understandable Consensus Algorithm》,发表于2014年 相比于 Paxos,Raft 最大的特性就是易于理解。为了达到这个目标,Raft主要做了两方面的事情: 1. 问题分解:把共识算法分为三个子问题,分别是领导者选举 ( ......
文心一言 VS 讯飞星火 VS chatgpt (75)-- 算法导论7.2 4题
# 四、如果用go语言,银行一般会按照交易时间来记录某一账户的交易情况。但是,很多人却喜欢收到的银行对账单是按照支票号码的顺序来排列的。这是因为,人们通常都是按照支票号码的顺序来开出支票的,而商人也通常都是根据支票编号的顺序兑付支票。这一问题是将按交易时间排序的序列转换成按支票号排序的序列,它实质上 ......
如何使用反射动态加载程序集
在C#中,我们可以使用反射Reflection来动态加载程序集。动态加载程序集是一种在运行时根据需要加载程序集的技术,而不是在编译时将其硬编码到应用程序中。 应用场景具体:为应用程序开发自定义插件。在应用程序中,我们可以使用反射来动态加载插件程序集,然后使用插件中的类型。 比如有如下的程序集: `` ......
算法刷题:数组题(持续更)
算法刷题系列: - [算法刷题:链表题(持续更)](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通过插入字符、删除字符 ......
基于GMM高斯混合模型的语音信息身份识别算法的matlab仿真
1.算法理论概述 一、引言 语音信息身份识别是指通过声音信号对个体进行身份识别的过程。目前,语音信息身份识别已经成为语音处理领域的一个热门研究方向。在语音信息身份识别中,高斯混合模型(GMM)是一种被广泛应用的方法。本文将详细介绍基于GMM的语音信息身份识别算法的实现步骤和数学原理。 二、GMM模型 ......
acwing 116.飞行员兄弟 (算法竞赛进阶指南 p48 t1 ) 题解
###原题链接 https://www.acwing.com/problem/content/description/118/ ### 题目描述 “飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有16个把手的冰箱。 已知每个把手可以处于以下两种状态之一:打开或关闭。 只有当所有把手都打开时,冰箱才会 ......
压缩算法
![](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( ......
VUE3_动态绑定多个值
动态绑定多个值 如果你有像这样的一个包含多个 attribute 的 JavaScript 对象: const objectOfAttrs = { id: 'container', class: 'wrapper' } 通过不带参数的 v-bind,你可以将它们绑定到单个元素上: <div v-b ......
双指针算法
联想归并排序,快排 目的:优化到O(n) 提高效率 O(n方)优化到O(n) 一个小例子,输入abc def ghi然后输出三行分别输出这三个单词 1 #incldue <iostream> 2 #include <string.h> 3 using namespace std; 4 int mai ......
AXI传输总结+页面置换算法+不定态判定+PATH管理
# AXI传输总结 AXI这部分我没有深入解除过,只是多多少少摸一下看下数据路径有没有传过去,总感觉不到难点在哪里,不就是一个传输协议吗? 这个是soc设计方法与实现中提供的附录,可供参考,但是有版本错误(AXI4不支持写的交织,没有WID) https://www.hxedu.com.cn/hxe ......