软考17-上午题-时间复杂度与空间复杂度

一、数据结构概述

  • 题号:57~65
  • 分值:9分
  • 内容:数据结构(大头)+算法

二、时间、空间复杂度

2-1、时间复杂度

算法的时间复杂度以算法中基本操作的执行次数为度量。用大O表示法。

2-1-1、常见的时间复杂度

示例:

T(n) = (2n + 3) * (3*n*n + 4)

= n * n^2

=O(n^3)

示例1:

示例2:

示例3:

示例4:

示例5:

示例6:

2-1-2、时间复杂度分类

  • 最好时间复杂度
  • 平均时间复杂度
  • 最坏时间复杂度

2-2、空间复杂度

执行算法时所使用的临时变量所占用内存空间的大小,同时间复杂度一样,用大O表示法。

目的:用于判断算法的优劣。

(在时间复杂度相同的情况下,空间复杂度越小越好) 

2-2-1、常见的空间复杂度种类

示例1:

常数空间:O(1) 

示例2:一维数组

线性空间:O(n) 

示例3:二维数组

二维空间:O(n^2) 

2-3、真题

真题1:

真题2:

真题3:

真题4:

三、渐进符号

示例:

示例:

示例:

真题:

四、递归式 

示例:阶层的算法

递归就是自己调用自己。 

4-1、递归的时间复杂度

递归算法的时间复杂度:递归总次数 * 每次递归中基本操作所执行的次数;

递归算法的空间复杂度:递归深度N * 每次递归所要的辅助空间;

如果每次递归所需的辅助空间是常数,则递归的空间复杂度是 O(N). 

示例:

n/2 = 1的时候,退出递归,设递归次数是x,则n / (2^x) = 1 

4-2、主观法 (主定理)

 

4-2-1、真题

真题1:

 

等差数列 

真题2:

 

真题3:

真题4:

 

真题5:

 

问题规模增加了16倍,即设n=16,所以,16^2 = 256 

真题6:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值