各种排序算法总结和比较 排序算法可以说是一项基本功,解决实际问题中经常遇到,针对实际数据的特点选择合适的排序算法可以使程序获得更高的效率,有时候排序的稳定性还是实际问题中必须考虑的,这篇博客对常见的排序算法进行整理,包括:插入排序、选择排序、冒泡 ...
分类:
编程语言 时间:
2019-09-08 11:19:41
阅读次数:
92
<大话数据结构> Chapter 2 算法的时间复杂度: n代表问题规模 T(n) 代表程序的执行次数 f(n) 代表n的某个函数 公式: T(n) = O(f(n)) 推倒大O阶的方法: 1. 用常数1代表运行时间中所有的加法常量. 2. 运行次数函数中只用保存最高阶项 3. 如果最高阶存在且不是 ...
分类:
编程语言 时间:
2019-09-05 23:16:03
阅读次数:
94
在教练的要求下开始学习多项式算法了,不过因为不太会积分和求导先把多项式牛顿迭代,多项式指数函数,多项式幂函数,多项式快速幂等内容咕掉了,于是这一篇博客就是其他基础多项式内容的总结。 Fast Fourier Transform $FFT$,快速傅里叶变换,可以在$O(n\log_2n)$的时间内计算 ...
分类:
编程语言 时间:
2019-08-27 23:03:35
阅读次数:
118
#include <iostream> #include <list> #include <sstream> #include <map> #include <set> #include <queue> #include <map> #include <functional> #include <a... ...
分类:
编程语言 时间:
2019-08-27 21:20:04
阅读次数:
105
图的存储有邻接矩阵,那么他就具备一些矩阵的性质,设有一个图的demo[100][100];那么demo[M][N]就是M—>N的距离,若经过一次松弛操作demo[M][N]=demo[M][K]+demo[K][N],即为demo[M][N]经过了两条条边的最小距离,floyd是 demo[M][N ...
分类:
编程语言 时间:
2019-08-16 22:33:15
阅读次数:
112
算法总结 详细十大排序算法:https://www.cnblogs.com/WindSun/category/1375215.html 图片名词解释: n: 数据规模 k: “桶”的个数 In-place: 占用常数内存,不占用额外内存 Out-place: 占用额外内存 算法的分类 比较和非比较的 ...
分类:
编程语言 时间:
2019-08-16 00:21:25
阅读次数:
86
1、冒泡排序,不管序列是怎样,都是要比较n(n-1)/2 次的,最好、最坏、平均时间复杂度都为O(n²),需要一个临时变量用来交换数组内数据位置,所以空间复杂度为O(1)。 优化:使用一个标志位来判断是否有序,若果有序,那么循环一次就直接退出,时间复杂度为O(n)。 2、选择排序是冒泡排序的改进,同 ...
分类:
编程语言 时间:
2019-08-09 23:32:27
阅读次数:
157
1、梯度下降法 给定一个目标函数f(x)和初始点x0 △xt = -▽f(xt) xt+1 = x + η△xt 停止条件:当 |△xt| < ε时停止 三大问题:局部最小值、鞍点、停滞区。 1.1 局部最小值(极值) 1.2 停滞区 函数有一段很平的区域,这时梯度很小,权值就更新的特别慢。 1.3 ...
分类:
编程语言 时间:
2019-08-07 22:28:08
阅读次数:
135
一、贪心算法 解决最优化问题的算法一般包含一系列的步骤,每一步都有若干的选择。对于很多最优化问题,只需要采用简单的贪心算法就可以解决,而不需要采用动态规划方法。贪心算法使所做的局部选择看起来都是当前最佳的,通过局部的最优化选择来产生全局最优解。本文将介绍贪心算法的理论基础和一些简单应用。在求最优解问 ...
分类:
编程语言 时间:
2019-08-06 01:15:34
阅读次数:
173
学过线性代数的都知道矩阵的乘法,矩阵乘法条件第为一个矩阵的行数等与第二个矩阵的列数,乘法为第一个矩阵的第一行乘以第二个矩阵的第一列的对应元素的和作为结果矩阵的第一行第一列的元素。(详解参见线性代数) 于是我们可以写出矩阵惩乘法的代码 应用:矩阵快速幂求斐波那契数列。 我们定义一个矩阵A |0 1| ...
分类:
编程语言 时间:
2019-08-06 01:11:57
阅读次数:
152