随笔分类 -  算法总结

小白一个,欢迎指正
摘要:What's the 递归算法 定义: 程序直接或间接调用自身的编程技巧称为递归算法(Recursion)。 一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次 阅读全文
posted @ 2020-05-30 20:06 风骨散人 阅读(262) 评论(0) 推荐(0)
摘要:图的存储有邻接矩阵,那么他就具备一些矩阵的性质,设有一个图的demo[100][100];那么demo[M][N]就是M—>N的距离,若经过一次松弛操作demo[M][N]=demo[M][K]+demo[K][N],即为demo[M][N]经过了两条条边的最小距离,floyd是 demo[M][N 阅读全文
posted @ 2019-08-16 21:18 风骨散人 阅读(222) 评论(0) 推荐(0)
摘要:​ 之前发在CSDN,排版不是很好,请见谅。 Dijkstra:适用于权值为非负的图的单源最短路径,用斐波那契堆的复杂度O(E+VlgV)BellmanFord:适用于权值有负值的图的单源最短路径,并且能够检测负圈,复杂度O(VE)SPFA:适用于权值有负值,且没有负圈的图的单源最短路径,论文中的复 阅读全文
posted @ 2019-08-14 09:47 风骨散人 阅读(289) 评论(0) 推荐(0)
摘要:有点像DP的思想,写写就会做。 阅读全文
posted @ 2019-08-06 00:03 风骨散人 阅读(1690) 评论(0) 推荐(0)
摘要:归并排序采取了分治的思想,每次分别排左半边和右半边,不断递归调用自己,直到只有一个元素递归结束,开始回溯,调用merge函数,合并两个有序序列,再合并的时候每次给末尾追上一个最大int这样就不怕最后一位的数字不会被排序。 ——————————————————————————————————————— 阅读全文
posted @ 2019-08-06 00:02 风骨散人 阅读(235) 评论(0) 推荐(0)
摘要:学过线性代数的都知道矩阵的乘法,矩阵乘法条件第为一个矩阵的行数等与第二个矩阵的列数,乘法为第一个矩阵的第一行乘以第二个矩阵的第一列的对应元素的和作为结果矩阵的第一行第一列的元素。(详解参见线性代数) 于是我们可以写出矩阵惩乘法的代码 应用:矩阵快速幂求斐波那契数列。 我们定义一个矩阵A |0 1| 阅读全文
posted @ 2019-08-06 00:01 风骨散人 阅读(742) 评论(0) 推荐(0)
摘要:一、贪心算法 解决最优化问题的算法一般包含一系列的步骤,每一步都有若干的选择。对于很多最优化问题,只需要采用简单的贪心算法就可以解决,而不需要采用动态规划方法。贪心算法使所做的局部选择看起来都是当前最佳的,通过局部的最优化选择来产生全局最优解。本文将介绍贪心算法的理论基础和一些简单应用。在求最优解问 阅读全文
posted @ 2019-08-05 23:58 风骨散人 阅读(518) 评论(0) 推荐(0)
摘要:一、迭代器(Iterator) 背景:指针可以用来遍历存储空间连续的数据结构,但是对于存储空间费连续的,就需要寻找一个行为类似指针的类,来对非数组的数据结构进行遍历。 定义:迭代器是一种检查容器内元素并遍历元素的数据类型。 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。 迭代器 阅读全文
posted @ 2019-08-05 17:01 风骨散人 阅读(392) 评论(0) 推荐(0)
摘要:写在前面: 为了能够使后续的代码具有高效简洁的特点,在这里讲一下STL,就不用自己写堆,写队列,但是做为ACMer不用学的很全面,我认为够用就好,我只写我用的比较多的。 什么是STL(STl内容): 容器(Container): 是一种数据结构,如list,vector,和deques ,以模板类的 阅读全文
posted @ 2019-08-05 16:57 风骨散人 阅读(156) 评论(0) 推荐(0)
摘要:## 一、预备知识(补码,反码)计算机通过二进制表示整形数,比如int型32位有符号整形数:1表示为:0000.....00001(共32位)-1表示为:1111.....1111(共32位)补码计算法定义:非负数的补码是其原码本身;负数的补码是其绝对值的原码最高位符号位不变,其它位取反,再加1。* 阅读全文
posted @ 2019-08-05 15:51 风骨散人 阅读(487) 评论(0) 推荐(0)