
算法 ===========================
文章平均质量分 95
传统算法
云端FFF
not because they are easy, but because they are hard
展开
-
模型预测控制MPC(2)—— 无约束线性MPC
介绍无约束线性MPC的问题建模,求解方法和稳定性分析原创 2024-04-15 12:46:17 · 1752 阅读 · 10 评论 -
模型预测控制MPC(1)—— 基础概念
介绍模型预测的基本概念原创 2024-04-15 04:50:54 · 3860 阅读 · 0 评论 -
【算法笔记】10.3 图的遍历
这是《算法笔记》的读书记录本文参考自10.3节一、DFS遍历图关于DFS算法:【算法笔记】8.1 深度优先搜索DFSDFS遍历图:以 “深度” 作为第一关键词,每次都是沿着路径走到不能前进时才回退到最近的岔路口。二、BFS遍历图关于BFS算法:【算法笔记】8.2 广度优先搜索BFS...原创 2020-09-14 20:35:12 · 426 阅读 · 0 评论 -
【算法笔记】8.2 广度优先搜索BFS
这是《算法笔记》的读书记录本文参考自8.2节文章目录一、引子二、广度优先搜索1. 定义2. 用队列实现BFS三、相关例题1. 块的个数一、引子还用上一篇DFS中的迷宫例子引入,参考【算法笔记】8.1 深度优先搜索DFS这次我们改变寻路策略,不知要找出路线,而且想知道从起点到终点的最短步数是多少(两个相邻节点间看作相隔一步),我们可以按如下的图示进行宽度优先搜索起点A是第一层,发现从A出发能访问到B和C,于是B、C是第二层按顺序访问第二层,先看B。从B出发能访问到D和E,于是D.原创 2020-09-09 20:10:09 · 367 阅读 · 0 评论 -
【算法笔记】8.1 深度优先搜索DFS
这是《算法笔记》的读书记录本文参考自8.1节文章目录一、引子二、深度优先搜索DFS三、DFS和回溯四、例题1. 搜索二叉树2. 背包问题一、引子现在我们身处一个迷宫之中,可能很多人都听说过这个说法:只要每个岔路都走右手边的分支,就一定能走出去。下图是一个示例,从起点开始,每个分岔都走右边,最后找到了出口这里其实就执行了深度优先搜索算法,我们可以这样理解:在岔路位置,如果不拐弯走直线,就看作维持在当前层面;如果拐弯了,就是走到迷宫更深处了。在每个岔路我们总是选择拐弯,总是以“深度”作为前进.原创 2020-09-09 15:11:33 · 295 阅读 · 0 评论 -
【算法笔记】4.4 贪心
这是《算法笔记》的读书记录本文参考自4.3节文章目录1. 简单贪心2. 区间贪心(1)区间不相交问题(2)区间选点问题3. 小结1. 简单贪心贪心法是求解一类最优化问题的方法他,它总是考虑当前状态下的局部最优的策略,来使全局结果达到最优不是所有问题都能用贪心法解决,因此要严谨地使用贪心算法,需要对策略进行证明。证明的一般思路是使用反证法及数学归纳法,先假设策略不能达到最优,然后根据一系列推到得出矛盾,从而证明策略是最优的,最后通过数学归纳法保证全局最优真正做题的时候,往往没有时间严谨证明.原创 2020-09-08 14:10:01 · 163 阅读 · 0 评论 -
【算法笔记】4.3 递归
这是《算法笔记》的读书记录本文参考自4.3节文章目录1. 分治2. 递归(1)什么是递归(2)简单实例3. 回溯4. 更多递归相关题目(1)逆波兰表达式(2)字母全排列1. 分治分治(分而治之):将原问题划分成若干个规模较小而结构与原问题相同或相似的子问题,然后分别解决这些子问题,最后合并子问题的解分治的三个步骤分解:将原问题分解为若干结构相同或相似的子问题。分解的子问题应当是相互独立没有交叉的,否则不应使用分治解决解决:递归求解所有子问题。如果子问题的规模小到可以直接解决,就直接解.原创 2020-09-08 00:25:43 · 266 阅读 · 0 评论 -
【算法笔记】4.2 散列(哈希)
这是《算法笔记》的读书记录本文参考自4.2节文章目录1. 散列(1)定义(2)关键问题2. 整数的散列3. 其他数据类型的散列4. 编程中的应用1. 散列(1)定义散列(hash)是一个常用思想,很多程序中都有意无意地会用到。 一句话说,散列就是 “将一个元素通过一个函数转换为整数,使得这个整数可以尽量唯一地代表这个元素”,这个转换函数称为 “散列函数 H”经过散列函数处理,我们就可以把元素本身作为一个key/索引/下标…,进而实现时间复杂度为O(1)的查询。所以散列本质上是用通过空间换.原创 2020-09-07 11:28:05 · 310 阅读 · 0 评论 -
【算法笔记】4.1 三大简单排序
这是《算法笔记》的读书记录本文参考自4.1节文章目录1. 选择排序2. 插入排序3. 冒泡排序4. 小结1. 选择排序思想:把数组分为有序的前半部分和无序的后半部分,每次从无序的后半部分选出最小的元素交换到分界处,从而使有序部分不断增长,直到完全有序这个思想可以很方便地转换为递归形式,示例代码如下//选择排序,复杂度 O(n^2) #include<iostream>using namespace std;void selectSort(int *a,int n.原创 2020-09-06 13:56:56 · 232 阅读 · 0 评论 -
C/C++中拆分long/float/double等数据并重新组合的方法
在嵌入式编程时,常常会遇到需要做数据通信的场景。单片机往往只支持一次8位的数据传递,为了传输较长的数据类型,只能先在主机将数据拆分,再在从机重新组合,这里介绍一些实用的数据拆分组合方法一、数据类型分析1、类型长度C/C++中有多种数据类型,但不管什么类型的数据都是以二进制形式存储的,在不同的系统和编译器中,各种类型转换为二进制后的长度有时会不一样,可以利用sizeof函数来查看你的环境中数...原创 2019-05-26 00:35:58 · 3872 阅读 · 0 评论 -
大整数加法
先看一道例题总时间限制: 1000ms 内存限制: 65536kB描述:求两个不超过200位的非负整数的和。输入:有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。输出:一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入2222222222222222222233333333333333333333...原创 2018-10-27 07:06:08 · 442 阅读 · 0 评论 -
使用prim算法生成随机迷宫
首先从理论上分析随机迷宫生成和最小生成树的关系,然后介绍使用prim算法生成随机迷宫法方法原创 2019-03-06 06:51:08 · 15444 阅读 · 2 评论