算法复习第一章归纳总结

算法的定义:算法是指解决问题的方法或过程,它包含一系列的步骤,用来将输入数据转换成输出数据

算法的四个性质:

  1. 输入:有零个或者多个输入
  2. 输出:至少有一个输出
  3. 确定行:组成算法的每条指令清晰、无歧义
  4. 有限性:算法中每条指令的执行次数有限。执行每条指令的时间也有限

 三种算法常见的描述形式:

  • 自然语言:通俗易懂,但缺乏直观性和简洁性,且易产生歧义。
  • 程序流程图:描述算法形象、直观,容易理解,绘制过程比较费时费力,难以修改。
  • 伪代码:简单易懂,修改容易,易于转化为程序语言代码,但伪代码格式难以规范。

时间复杂性渐进性表示:

  1. O的定义:如果存在正的常数C和自然数N0,使得当N > =N0时有f(N) <=Cg(N),则称函数f(N)当N充分大时上有界,且g(N)是它的一个上界,记为f(N)=O(g(N)),即f(N)的阶不高于g(N)的阶
  2. Ω的定义:如果存在正的常数C和自然数N0,使得当N >=N0时有f(N) > =Cg(N),则称函数f(N)当N充分大时下有界,且g(N)是它的一个下界,记为f(N)=Ω(g(N)),即f(N)的阶不低于g(N)的阶。
  3. θ的定义:定义f(N)= θ(g(N))当且仅当f(N)=O(g(N))且f(N)= Ω(g(N)),此时称f(N)与g(N)同阶
  4. o的定义:对于任意给定的ε>0,都存在正整数N0,使得当N > =N0时有f(N)/Cg(N) <= ε,则称函数f(N)当N充分大时的阶比g(N)低,记为f(N)=o(g(N))。

常见的算法复杂度的O(n)表示:

  • O(1): 表示算法的运行时间为常量时间
  • O(logn): 二分查找等算法
  • O(n): 线性算法,例如线性查找
  • O(nlogn): 快速排序、归并排序等算法
  • O(n2): 对数组进行排序的简单算法,例如冒泡排序等
  • O(n3): 做两个n阶矩阵的乘法运算
  • O(2n): 求具有n个元素集合的所有子集的算法
  • O(n!): 求具有n个元素的全排列的算法

O(1)<O(logn)<O(n)< O(nlogn) <O(n2)<O(n3)<O(2n)<O(n!)

例题:对于f(n)=n,下列说法错误的是(  B  )

A. f(n)=O(n)   B. f(n)=O(1/n)    C. f(n)=O(n2)    D. f(n)=O(n3)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值