算法基本概念

本文详细介绍了算法的时间复杂度和空间复杂度概念,包括基本运算频度、常见时间复杂度等级、加法与乘法原则及算法所需存储空间等内容。

一.小结导图

算法基础

二.时间复杂度和空间复杂度

  • 时间复杂度

    ​     一个语句的频度是指该语句在算法中被重复执行的次数算法中所有语句的频度之和记作T(n),它是该算法问题规模n的函数,时间复杂度主要分析T(n)的数量级(取f(n)中随n增长最快的项将其系数置为1作为时间复杂度的度量)。算法中的基本运算(最深层循环内的语句)的频度与T(n)同数量级,所以通常采用算法中基本运算的频度f(n)来分析算法的时间复杂度。因此,算法的时间复杂度记为:
    T(n)=O(f(n)) T(n) = O(f(n)) T(n)=O(f(n))

    ​    O的含义是T(n)的数量级,其严格的数学定义是:若T(n)和f(n)是定义在整数集合上的两个函数,则存在正常数C和n0,使得n>=n0时,都满足0<=T(n)<=C*f(n)。

    ​    算法的时间复杂度不仅依赖于问题的规模n,也取决于待输入数据的性质。

    ​    加法原则:
    T(n)=T1(n)+T2(n)=O(f(n))+O(g(n))=O(max(f(n),g(n))) T(n) = T1(n)+T2(n) = O(f(n))+O(g(n)) = O(max(f(n), g(n))) T(n)=T1(n)+T2(n)=O(f(n))+O(g(n))=O(max(f(n),g(n)))
    ​     乘法原则:
    T(n)=T1(n)×T2(n)=O(f(n))×O(g(n))=O(f(n)×g(n)) T(n) = T1(n)\times T2(n) = O(f(n))\times O(g(n)) = O(f(n)\times g(n)) T(n)=T1(n)×T2(n)=O(f(n))×O(g(n))=O(f(n)×g(n))
    ​     常见的渐近时间复杂度有

    ​           O(1) < O(log2n)<O(n)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)

  • 空间复杂度

​     算法的空间复杂度S(n)定义为该算法所耗费的存储空间,它是问题规模n的函数,记作S(n) = O(g(n))。
​    一个上机程序除了需要存储空间来存放本身所用指令、常数、变量和输入数据之外,也需要一些对数据进行操作的工作单元和存储一些为实现计算所需信息的辅助空间,若输入数据所占空间只取决于问题的本身,和算法无关,则只需分析除输入和程序之外 的额外空间
​    算法原地工作是指算法所需辅助空间是常量,即O(1)。

数据结构考试题 第一章 绪论 1. 算法的计算量的大小称为计算的( )。【北京邮电大学2000 二、3 (20/8分)】 A.效率 B. 复杂性 C. 现实性 D. 难度 2. 算法的时间复杂度取决于( )【中科院计算所 1998 二、1 (2分)】 A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(1),它必须具备(2) 这三个特性。 (1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 【南京理工大学 1999 一、1(2分) 【武汉交通科技大学 1996 一、1( 4分)】 4.一个算法应该是( )。【中山大学 1998 二、1(2分)】 A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C. 5. 下面关于算法说法错误的是( )【南京理工大学 2000 一、1(1.5分)】 A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面说法错误的是( )【南京理工大学 2000 一、2 (1.5分)】 (1)算法原地工作含义是指不需要任何额外的辅助空间 (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法 (3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为( )两大类。【武汉交通科技大学 1996 一 、4(2分)】 A.动态结构、静态结构 B.顺序结构、链式结构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值