算法基础知识概述

前言:

     要开始算法的学习,除了那些让我们感到神奇的算法思想以外,我们还是需要知道一些基本的概念,掌握一些基本的数学基础

一、算法复杂性分析

     在数据结构中我们看时间复杂度的大小都是简化的看问题规模和基本语句。这里我们可以简化归纳一下,我们只需要考虑当问题规模充分大时,算法复杂性在渐进意义下的阶
     那么你肯定知道,我要介绍五个“友好”的符号给你,当然这个是很好理解的。

1.大O符号

定义:设f和g是定义域为自然数集N上的函数,若存在正数c和n0,使得对一切n>=n0
0<=f(n)<=cg(n)成立,则称f(n)的渐进的上界是g(n),记作f(n) = O(g(n))

2.大 Ω \Omega Ω符号

定义:设f和g是定义域为自然数集N上的函数。若存在正数c和n0,使得对一切n>=n0有0<=cg(n)<=f(n)成立,则称f(n)的渐进的下界是g(n),记作f(n)= Ω \Omega Ω(g(n))

3.小o符号

定义:设f和g是定义域为自然数集N上的函数。若对于任意正数c都存在n0,使得对一切n>=n0有0<=f(n)<cg(n)成立,则记作f(n)=o(g(n))

4.小 ω \omega ω符号

定义:设f和g是定义域为自然数集N上的函数。若对于任意正数c都存在n0,使得对一切n>=n0有0<=cg(n)<f(n)成立,则记作f(n)= ω \omega ω(g(n))

5. Θ \Theta Θ符号

定义:若f(n) = O(g(n))且f(n) = Ω \Omega Ω(g(n)),则记作f(n) = Θ \Theta Θ(g(n)),我们说f(n)与g(n)同阶

二、有关函数渐进的界的三个定理(会有涉及高等数学知识,不过就是简单的积分和极限)

定理一
在这里插入图片描述
定理二
在这里插入图片描述
定理三
在这里插入图片描述

三、NP完全性理论

     人们通常将可在多项式时间内解决的问题看做是“易”解决问题,而降需要指数函数时间解决的问题看做是“难”问题。所有可以在多项式时间内求解的判定问题构成P类问题。
     P类问题是确定性计算模型下的易解决问题类,而NP类问题是非确定性计算模型下的易验证问题类。所有非确定性多项式时间可解的判定问题构成NP类问题。

四、数学基础

这里介绍几类重要的函数:基本函数类(指数级、多项式级、对数多项式级):对数函数、指数函数、取整函数。像这些基本的我们就需要知道它们的运算性质,可以估计函数的阶。

那么算法的数学基础来了:

1、序列求和的方法:

一看到这个是不是就想到了一些学过的基本公式:
     序列求和基本公式:等差数列、等比数列、调和级数
估计序列和:
     放大法求上界、用积分做和式的渐进的界

2、递推方程与算法分析

     提起这个是不是想到高中推到公式时候的感觉,哈哈。
定义:设序列a0,a1,…,an,简记为{an},一个把an与某些个ai(i<n)联系起来的等式叫做关于序列{an}的递归方程。

3、迭代法求解递推方程

     我们可以知道就有直接迭代,带入初值,然后求和。对递推方程进行换元,然后求和,求和后进行相反换元,得到原始递推方程的解。(可用数学归纳法验证)

4、差消法化简递推方程

     对于高阶递推方程要先用差消法化简为一阶方程,然后迭代求解。

5、递归树

     递归树是迭代计算的模型,递归树的生成过程与迭代过程一致,递归树上所有项恰好是迭代之后产生和式中的项,对递归树上的项求和就是迭代后方程的解。

6、主定理(小提示,~~中间的代表下标字符)

     定理:设a>=1,b>1为常数,f(n)为函数,T(n)为非负整数,且T(n)=aT(n/b)+f(n),则
1)若f(n)=O(nlog~b~a-&),&>0,那么T(n)= Θ \Theta Θ(nlog~b~a)
2)若f(n)= Θ \Theta Θ(nlog~b~a),那么T(n)= Θ \Theta Θ(nlog~b~alogn)
3)若f(n)= Ω \Omega Ω(nlog~b~a+&),&>0,且对于某个常数c<1和充分大的n有af(n/b)<=cf(n),那么T(n)= Ω \Omega Ω(f(n))

后记:

     额,反正整理到这里需要理清楚自己的逻辑,然后这些东西就很简单了,之后就开始我们正式的算法之路,下一篇,递归与分治策略如果公式有误,评论指出哦,谢谢。

  • 11
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

threecat.up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值