在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度, 这里进行归纳一下它们代表的含义: 这是算法的时空复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。 O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关 ...
分类:
其他好文 时间:
2018-09-15 15:17:29
阅读次数:
152
原文地址:https://blog.csdn.net/Mars93/article/details/75194138 作者:Mars93 在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度, 这里进行归纳一下它们代表的含义: 这是算法的时 ...
分类:
其他好文 时间:
2018-09-05 00:53:56
阅读次数:
169
目的:掌握 排序算法的分类及不同算法复杂度的对比、搞清楚 XXX与数组初始状态无关分为几种情况: a、算法复杂度与初始状态无关; b、元素总比较次数与初始状态无关; c、元素总移动次数与初始状态无关。 1、算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次 ...
分类:
编程语言 时间:
2018-09-02 13:58:29
阅读次数:
162
最大子数组问题 本文只是做一个记录,更细致的思路请查看算法导论 最大子数组结构体 暴力求解 计算所有的数组区间的和进而得到最大的子数组,算法复杂度为θ(n2)。这种方法在小规模的数据表现很好,d但是在大规模数据中则很糟糕,但可用作分治算法的改进。实现的思路是先计算从以 为起始的最大子数组,然后从[1 ...
分类:
编程语言 时间:
2018-09-01 21:49:20
阅读次数:
212
反向传播算法 上一节的我们已经知道了前向传播是如何计算的了。即给定x如何通过各个节点计算出y。 那么还有一个问题就是我们如何确定各个神经元的权重,或者如何说训练一个神经网络。 在传统机器学习算法中我们会使用梯度下降算法来做权重更新: $$ \theta_j:=\theta_j \alpha\frac ...
分类:
编程语言 时间:
2018-08-29 21:28:51
阅读次数:
465
用于可视化递归算法的流程。当你知道递归的时间复杂度的公式后,就可以画出递归树,有利于你计算递归算法的时间复杂度。 像这种公式,第一个2说明是二叉树,一分为2;第二个n/2,说明他的儿子们所占用的数据只有一半,也就是说: T(n/2)=2T(n/4)+cn/2; 总的时间复杂度,就是树高与每层数据量之 ...
分类:
其他好文 时间:
2018-08-24 14:55:05
阅读次数:
105
在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度, 这里进行归纳一下它们代表的含义: 这是算法的时空复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。 O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关 ...
分类:
编程语言 时间:
2018-08-22 21:54:11
阅读次数:
182
前言 无论是计算机算法概论、还是数据结构书中,关于算法的时间复杂度很多都用包含O(logN)这样的描述,但是却没有明确说logN的底数究竟是多少。算法中log级别的时间复杂度都是由于使用了分治思想,这个底数直接由分治的复杂度决定。如果采用二分法,那么就会以2为底数,三分法就会以3为底数,其他亦然。 ...
分类:
编程语言 时间:
2018-08-22 11:09:22
阅读次数:
240
给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。 数学表达式如下: 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。 示例 1: 示例 2: ...
分类:
其他好文 时间:
2018-08-21 23:05:31
阅读次数:
261
SPFA是一种单源最短路算法,与Dijkstra不同的是,他可以处理负边权,而且能判断负环。SPFA是Bellman算法的队列优化,在过程上和BFS有些类似。SPFA的算法流程大时这样的,先将源点加入队列中,只要队列不为空,取出队首元素,用他去更新与他相连的点的最短路,若成功更新且被更新的点不在队列 ...
分类:
编程语言 时间:
2018-08-20 23:49:56
阅读次数:
342