
算法
文章平均质量分 70
凉冰难消一腔热血
在读通信专业的研究生一枚
展开
-
matlab 和 Octave 中 gif 图的绘制 - (包含正弦函数的绘制测试)
在使用 matlab 或者 octave 时,有时会需要绘制动图(.gif)并保存,这里对动图(其他图片格式,同理)进行阐述。有的时候,gif 有助于对问题的理解,下面就介绍一下如何利用Matlab来绘制gif图。主要是源代码及结果展示,代码里面有注释,根据自己的需求,进行修改即可。注:以下程序均需另存为 m 文件运行,运行后在Matlab的当前路径下,可以看到相应的 gif 文件。有的 gif 图片是由多个 gif 图片拼接而成的,拼接时所用的软件是 ulead gif animator, 可自行原创 2021-12-02 10:39:52 · 1256 阅读 · 0 评论 -
二叉树的迭代遍历-2
二叉树的递归遍历二叉树的递归遍历方法较为简单,我在之前的博客中已经介绍过:<二叉树的递归遍历>递归的实现就是:每一次递归调用都会把函数的局部变量、参数值和返回地址等压入调用栈中,然后递归返回的时候,从栈顶弹出上一次递归的各项参数,因此递归可以返回上一层。二叉树的迭代遍历:二叉树也可以使用栈来实现迭代遍历,具体代码如下所示前序遍历是中左右,每次先处理的是中间节点,因此需要先将根节点放入栈中,然后将右子节点入栈,最后使左子节点入栈。因此前序遍历的代码最为简单但是如果使用上面的前序遍历原创 2021-05-21 09:23:07 · 137 阅读 · 0 评论 -
动态规划1-动态规划分析
一:动态规划算法介绍:1.动态规划(dynamic programming)与分治方法相似,都是通过组合子问题的解来求解源问题。而分治方法将问题划分为互不相交的子问题,递归地求解子问题,再将它们的解组合起来,求出原问题的解。与之相反,**动态规划应用于子问题重叠的情况,即不同的子问题具有公共的子子问题子问题的求解是递归进行的,将其划分为更小的子子问题)**。在这种情况下,分治算法会做许多不必要的工作,它会反复地求解那些公共子子问题。而动态规划算法对每个子子问题只求解一次,将其解保存在一个表格中,原创 2021-04-24 11:34:55 · 360 阅读 · 0 评论 -
排序算法4---插入排序
一、插入排序算法介绍这一节中,我们主要介绍插入排序。在插入排序中,对于少量元素的排序,他是一个有效的算法。插入排序的工作方式就像许多人排序一手扑克牌,我们每次拿到一张牌后将其插入到正确的位置。在该算法中,我们要在原数组中重排这些数,在任何的时候,最多只有其中的常数个数字存储在数组外面。其伪代码如下所示:insertSort(A)(伪代码,A表示数组,A.length表示数组长度)for j = 2 to A.length key = A[j] // Inse...原创 2021-04-01 20:44:16 · 445 阅读 · 0 评论 -
二叉树前序、中序、后序遍历-1
目录前序遍历:中序遍历:后序遍历:使用递归方法进行遍历的代码:一、前序遍历:前序遍历(VLR),是二叉树遍历的一种,也叫做先根遍历、先序遍历、前序周游,可记做根左右。前序遍历首先访问根节点然后遍历左子树,最后遍历右子树。前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根节点,然后遍历左子树,最后遍历右子树。若二叉树为空则结束返回,否则:(1)访问根结点。(2)前序遍历左子树。(3)前序遍历右子树 。需要注意的是...原创 2021-03-19 22:30:22 · 969 阅读 · 0 评论 -
并查集
在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(Union-find Algorithm)定义了两个用于此数据结构的操作:Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。Union:将两个子集合并成同一个集合。由于支持这两种操作,一个不相交集也常被称为联合-查找数据结构(Union-find Data Structure)或合并-查找集合(Merge-find Set)。为了更加精确的.原创 2021-03-13 13:39:19 · 792 阅读 · 0 评论 -
三十六进制加法(0-9,a-z)
三十六进制加法:由数字 + 小写字母组成,此时每个数字用字符串表示。0-9 表示 0-9, a-z 表示 10-35如”1a“ + "2b" = "3c", "3"+"a"=”d"这里可以使用字符串直接进行求和注:不可以转换为整数,如果转换为整数,可能会导致内存溢出,且会占用大量内存。class Solution{public: /*判断每个字符属于0-9还是a-z*/ char getChar(int n){ if(n <= 9) return n+...原创 2021-03-13 09:25:19 · 3449 阅读 · 0 评论 -
c++中 string 和 int 类型转换
在C++编程的时候,有时需要将string类型转为int类型,则需要进行2部分:1、首先将 字符串string 转为 C语言中的 const char* 类型(使用 _c.str()函数)2、将 const char* 转为 int 类型(使用atoi(const char *)函数)注意:.c_str()函数在#include<string>的头文件中 atoi()函数在#include<stdlib.h>的头文件中,如果使用,则必须包含该头文...原创 2020-09-17 21:31:05 · 16376 阅读 · 1 评论 -
马尔可夫链的常返态和非常返态-零常返态
一 非常返状态的定义设I={1、2、3、4},转移概率如图1所示,可以计算出状态2和状态3有相同的周期d=2。但由状态3出发经两步必定返回到3,而状态2则不然,当状态2转移到状态3后,便不可以返回到状态2,因此为了区分着两种状态,引入了常返性概念。记 (1)显然由马氏链性质于齐次性上式右方与m无关。它表示质点由状态i出发,经n步首次到达状态j的概率,也称为首中概率(或首达概率)。记(2)它表示指点由状态i出发,经有限步终于到达状态j的概率。图1 马尔可夫链上图1中的.原创 2020-09-13 16:10:07 · 34034 阅读 · 4 评论 -
C/C++中Sleep函数的用法(for循环中产生的随机数一样解决方法之一)
有时我们使用for循环去产生随机数组时,发现其生成的随机数都一样,这和我们想要的不一样。通过查阅相关资料后发现,是因为当计算机的性能较快时,for循环运行时间非常短,srand(time(NULL))每次都返回相同的值。原因:用系统时间做随机种子并不保险,如果应用程序在一个较快的计算机上运行,则该计算机的系统时钟可能没有时间在此构造函数的调用之间进行更改,Random 的不同实例的种子值。解决方法一:使用Random ra=new Random();解决方法二:使用Sleep()函数..原创 2020-07-27 21:01:56 · 5199 阅读 · 0 评论 -
C/C++中均匀分布和Possion
泊松分布适合于描述单位时间内随机事件发生的次数的概率分布。如某一服务设施在一定时间内受到的服务请求的次数,电话交换机接到呼叫的次数、汽车站台的候客人数、机器出现的故障数、自然灾害发生的次数、DNA序列的变异数、放射性原子核的衰变数等等。泊松分布的概率质量函数为:在产生泊松分布时,首先需要产生均匀分布,下面给出了均匀分布和Possion分布的代码。#include <math.h>#include <stdlib.h>//均匀分布double...原创 2020-07-27 17:54:49 · 1090 阅读 · 0 评论