![](https://img-blog.csdnimg.cn/71e3fb3790f745a89312b963131fc42d.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
基础算法与数据结构
文章平均质量分 68
基础算法
卢平光
这个作者很懒,什么都没留下…
展开
-
数据结构-链表、队列、栈、哈希表
数据结构指的是任意长度、类型的数据对应的字节在内存中的存放结构。内存存储单元的最小单位是Byte,内存物理上是连续的、无差别的。但是软件可以通过不一样的使用方式来填充、操作内存。例如数组中,数据是顺序存放至内存,使用时则是按照下标去索引。以上提到的主要可以概括为两点:1、存储方式 2、使用方式,按照存储方式分类可以分为:顺序存储与离散存储;按照使用方式可分为:顺序使用、随机使用。当然顺序存储并不意味着只能顺序使用,离散存储也不是只能随机使用,两者是可以随机组合的,而最终组合的产物就被称为数据结构。例如被人原创 2020-10-05 20:05:57 · 1225 阅读 · 0 评论 -
数据结构-图、二叉树、B(+)树
图https://www.jianshu.com/p/bce71b2bdbc8原创 2020-10-18 20:02:54 · 889 阅读 · 0 评论 -
加速度计解算姿态角
姿态角(欧拉角)欧拉角主要用于描述刚体在固定三维参考坐标系下由于绕三轴任意旋转而形成的姿态角,具体描述参看欧拉角说明图中xyz为固定参考系坐标,XYZ为刚体自有坐标系(假定右手定则,即大拇指指向某一轴正方向,握拳是其余手指的转动方向为姿态角变化的正方向),则定义绕固定坐标系的z轴旋转:航向角yaw, 转动 y 角度绕固定坐标系的y轴旋转:俯仰角pitch,转动p 角度绕固定坐标系的x轴旋转:横滚角roll, 转动r 角度可以看出欧拉角或者姿态角是相对各个轴的角度偏移,再假定旋转的顺规为Z原创 2022-01-09 10:13:26 · 10202 阅读 · 6 评论 -
通过KMP算法掌握有限状态机
2021-2-20完成~原创 2021-02-17 20:41:00 · 942 阅读 · 0 评论 -
算法思想-回溯、分治、动态规划的关系
回溯(Back-Tracing)回溯实质使用函数递归的DFS实现,基本来看是一种暴力穷举方法,其实是有框架的def backtrack(路径, 选择列表): //递归必须要有base case,即结束条件 if 满足结束条件: result.add(路径) return //暴力穷举所有选择(每次递归只有两种选择时,实际就是二叉树搜索) for 选择 in 选择列表: //做选择,一般都是选或者不选等(例如背包问题就是放入包原创 2021-01-17 21:18:33 · 493 阅读 · 0 评论 -
算法思想-排序
排序的实质排序并不是一种算法思想,而是基于遍历的一种算法实现。形形色色的排序算法,并不能绝对的认为哪一种排序最好,因为最好的度量指标究竟是耗时、内存占用亦或是稳定性是不确定的,这个要根据使用场景来决定,但是我们必须掌握各种排序方法的实现原理,这样才能做到“具体问题具体分析”。下图为多种排序算法的特性归纳:直接排序//从小到大进行排序insertsort(int *k,int n) /*直接插入排序*/{ int i,j; int temp; fo原创 2020-10-01 10:55:21 · 236 阅读 · 0 评论 -
算法思想-随机化
随机化算法(randomized algorithm)现实中有许多问题的解决过程并无标准数学公式可以遵循,即便可以通过公式计算,但是复杂度较高,因此可以使用随机思想,利用随机化结果去逼近实际问题的记过,概率算法允许在执行过程中随机的选择下一步的计算步骤。可使算法大大降低复杂度,提高算法效率,但有时也可能得不到问题的准确答案,随机化算法包括四类:数值概率算法,蒙特卡洛算法,拉斯维加斯算法,舍伍德算法。使用数值概率思想求积分问题设f(x)=1-x^2,计算定积分分析:要计算定积分的值的几何含义就是f(x原创 2020-09-12 11:12:44 · 2431 阅读 · 0 评论 -
算法思想-回溯
回溯(Back-Tracing)回溯法值得就是一种搜索,或是一种组织得井井有条的,避免不必要步骤的搜索法。回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。回溯法指导思想——从一个点开始,按照规则顺序往前走,走的通则继续走;走不通,就掉头,掉头还是不通,就再掉头。因此也是多使用递归法实现回溯。该问题的规模缩小原创 2020-09-03 21:57:03 · 1404 阅读 · 0 评论 -
算法思想-分治
分治(Divide-and-Conquer)分治法,字面意思是“分而治之”,就是把一个复杂的1问题分成两个或多个相同或相似的子问题,再把子问题分成更小的子问题直到最后子问题可以简单地直接求解,原问题的解即子问题的解的合并。但并不是所有复杂问题都可以完美拆分成多个子问题,要想使用分治思想必须满足如下条件:该问题的规模缩小到一定的程度就可以容易的解决。该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。利用该问题分解出的子问题的解可以合并为该问题的解。该问题所分解出的各个子问题是原创 2020-08-29 14:12:40 · 303 阅读 · 0 评论 -
算法思想-动态规划
1、动态规划(dynamic programming)https://www.jianshu.com/p/a66d5ce49df5动态规划思想:讲最终目标(求最优值)拆分为多个阶段目标以此完成(阶段目标的最优值需记录),例如在解决01背包问题时,会假设有多个容量的背包bag[1、2、3…],多个物品选择范围stuff[0-1]、stuff[0-2]、stuff[0-3]…,以bag容量与stuff范围为参数,求取各个组合下的最优值。2、应用https://blog.csdn.net/xp731574原创 2020-08-27 20:14:46 · 160 阅读 · 0 评论