算法复杂度

算法概念

旧城冷巷雨未停 提交于 2019-12-01 20:10:51
一、概念 1、原操作 2、频度 3、时间复杂度 n趋于无穷大时候,Tn比上On是一个常数,变化趋势一样;(On是Tn的最高次幂); 4、时间复杂度表示 来源: https://www.cnblogs.com/wmqiang/p/11716073.html

模拟测试66反思

五迷三道 提交于 2019-11-30 23:13:06
这次考试 有点 崩,T2卡常我佛了。 最近太颓了,考试T3不想改, 爷谢比了 ,人最容易忘掉的,就是初心。 明明不甘心去颓废,又管不住自己,一个$csps$还没考的人去看$NOI$游记? 你还在彼岸仰望,愈是仰望,愈是遥不可及。 清醒吧,所幸你还没落那么远,还有机会追回来。 算法的常数有时比复杂度更重要。 复杂度是期望,而常数是现实和期望的落差。 来源: https://www.cnblogs.com/hzoi-kx/p/11644203.html

递归树

不羁的心 提交于 2019-11-29 17:26:58
求递归算法的时间复杂度:递归树 递归算法时间复杂度的一个递归方程: 在引入递归树之前可以考虑一个例子: T(n) = 2T(n/2) + n 2 ; 迭代2次可以得: T(n) = n 2 + 2(2T(n/4) + (n/2) 2 ) 还可以继续迭代,将其完全展开可得: T(n) = n 2 + 2((n/2) 2 + 2((n/2 2 ) 2 + 2((n/2 3 ) 2 + 2((n/2 4 ) 2 +…+2((n/2 i ) 2 + 2T(n/2 i+1 )))…))))  ……(1) 来源: https://www.cnblogs.com/SpicyArticle/p/11524442.html

Java实现八大排序算法

巧了我就是萌 提交于 2019-11-29 15:20:30
本文对常见的排序算法进行了总结。 常见排序算法如下: 直接插入排序 希尔排序 简单选择排序 堆排序 冒泡排序 快速排序 归并排序 基数排序 它们都属于内部排序,也就是只考虑数据量较小仅需要使用内存的排序算法,他们之间关系如下: \[ \begin{cases}内部排序 \begin{cases}插入排序\begin{cases}直接插入排序\\希尔排序\end{cases}\\选择排序\begin{cases}简单选择排序\\堆排序\end{cases}\\交换排序\begin{cases}冒泡排序\\快速排序 \end{cases}\\归并排序\\ 基数排序\end{cases}\\外部排序 \end{cases} \] \[ \left\{\begin{matrix} 内部排序\\ 外部排序 \end{matrix}\right. \] 稳定与非稳定 : 如果一个排序算法能够保留数组中重复元素的相对位置则可以被称为是 稳定 的。反之,则是 非稳定 的。 直接插入排序 基本思想 通常人们整理桥牌的方法是一张一张的来,将每一张牌插入到其他已经有序的牌中的适当位置。在计算机的实现中,为了要给插入的元素腾出空间,我们需要将其余所有元素在插入之前都向右移动一位。 算法描述 一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下: 从第一个元素开始,该元素可以认为已经被排序

Algorithm lesson final exam

走远了吗. 提交于 2019-11-28 16:27:23
1、algorithm analysis O B/W/AV/AMOR,混入其他问题,设计+分析 2、传统算法(肯定要考) 1)divide and conquer master therem、 recursive tree、分析复杂度、递归树加起来得到最终结果 2)greedy algorithm example sort->select 拟阵 独立系统的贪心模板,直接得到近似比 3)dynamic programming sub-optimal structrue、编辑距离 3、graph algorithm 1)exproration bfs and dfs、最小生成树 2)最短路,single path all pair 负环、负边 3)max-flow 优化方式 4、turing machine Np/NPC NP-hard np-reduction 5、approximation greedy/sequential/local search/lp rouding 三种算法的设计、图算法、图灵机、近似算法 来源: https://www.cnblogs.com/elpsycongroo/p/11939165.html

抗几何攻击数字水印分类总结

浪子不回头ぞ 提交于 2019-11-27 23:24:33
1利用矩阵转换不变的特性。 最经典的是SVD(奇异值分解),生成的矩阵相互转换。在使用的过程中,能够抵抗几何攻击。但早期的SVD数字水印算法出现虚警率的问题。 2扩频模式 这个是经典的实现算法,模拟信道传输,需要DSP方面的技术,这方面我很缺乏,就不细讲了。 3同步检测 canny边缘检测是经典的方法,特别对于旋转攻击,检测到角点,计算出偏移的角度,实现旋转纠正。 4 特征点提取。经典的是SIFT算法,但时间复杂度高,SURF就继承过来,并且时间复杂度得到改善。在结合一些数学工具的改进,能使图像获得更多的特征点。我现在正在研究,希望能有所收获,发篇好的论文,求祝福。 来源: CSDN 作者: 杨宝涛 链接: https://blog.csdn.net/zhongriqianqian2076/article/details/51996664

2019.08.18【NOIP?提高组】模拟 A 组 总结

纵然是瞬间 提交于 2019-11-27 18:47:10
考场: \(100 + 10 + 0 = 110\) T1: 看到 \(m\) 那么大,于是就想到了矩乘。 但发现好像不行,于是打了个大大的贪心。 对拍跑了 \(30+\) 分钟一点都没错,于是自信满满地交了,果真 \(AC\) 。 T2: 考场先想到 \(O(nlog^2n)\) 的线段树,发现过不了。于是开始“异想天开”。 最后神奇想到分块。 赛后同学说分块是 \(O(m根号n)\) 的,我才发现时间好像过不了。。。 但我好像没有一个点 \(TLE\) 。。。 不停改细节最后成功 \(AC\) , \(700+ms\) 没有卡线。 分块打法好! T3: 积性函数? 总结: 对于一个算法,首先要考虑时间复杂度。 然后看看实现复杂度。(别到时候码不出来) 对于那些正确性不太显然的算法,一定要小心验证一下。 对了,还有空间别超了。 现在: \(100 + 100 + 0 = 200\) 来源: https://www.cnblogs.com/jz929/p/11372813.html

10种传统机器学习算法

不羁岁月 提交于 2019-11-26 22:30:54
1基于CF的推荐算法 1.1算法简介 CF(协同过滤)简单来形容就是利用兴趣相投的原理进行推荐,协同过滤主要分两类,一类是基于物品的协同过滤算法,另一种是基于用户的协同过滤算法,这里主要介绍基于物品的协同过滤算法。 给定一批用户,及一批物品,记Vi表示不同用户对物品的评分向量,那么物品i与物品j的相关性为: 上述公式是利用余弦公式计算相关系数,相关系数的计算还有:杰卡德相关系数、皮尔逊相关系数等。 计算用户u对某一物品的偏好,记用户u对物品i的评分为score(u,i),用户u对物品i的协同过滤得分为rec(u,j)。 1.2业务实践 以购物篮子为例,业务问题:根据用户的历史购买商品记录,给用户推荐一批商品,协同过滤算法实现方法如下。 记buyers表示用户购买商品的向量,记为 其中表示全库用户集合,表示用户对商品的得分,定义如下: Step1:计算物品之间的相关系数 记buyersi表示用户购买商品的向量,记buyersi=(…,bu,i,…) u∈U为,其中U表示全库用户集合,bu,i表示用户u对商品i的得分,定义如下: 那么商品i与商品j的相关系数如下: 上述公式是是利用余弦公式计算相关性,含义是商品的用户购买向量夹角越小越相似。此外也可以运用皮尔逊、杰卡德、自定义公式计算相关性,这里不一一列举。 Step2:计算用户对商品的协同过滤得分 给定一个用户u

分治法的基本思想

拟墨画扇 提交于 2019-11-26 12:09:18
分治法得基本思想是将一个规模为n的问题分解为k个规模为m的相互独立且与原问题解法相同的子问题,然后将子问题的解合并得到原问题的解。 由此可见,分治法设计出的程序一般是递归算法,设解决一个规模为1的问题需要1个单位时间,再设将k个子问题的解合并为原问题的解所需时间为f(n),则递归算法的时间复杂度为: 解递归方程: , 主定理: 当 时,T(n)=O( ); 当 时,T(n)=O ; (此处logn底数为2) 当 时,T(n)=O(f(n)); 来源: CSDN 作者: FRANKENSTEIN0 链接: https://blog.csdn.net/qq_41678225/article/details/100707762