软件设计师(旧栎篇)

3.数据结构

### 3.1 时间复杂度和空间复杂度

#### 3.1.1 时间复杂度

频度:算法时间复杂度中基本操作重复执行的次数

时间复杂度:**大致计算出相应的数量级**

**时间复杂度的比较(必须记住):**

**O(1)<O(log2^n)<O(n)<O(nlog2^n)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)**

**加法规则:取最高阶项,并将系数化1**

**乘法规则:多项相乘得到最高阶项,保留最高阶项,将系数化1**

**加法乘法混合规则:先去小括号内的最高阶项,然后在乘法规则(得到最高阶项)再进行加法规则**

**问题涉及递归思想时需考虑时间复杂度**

时间复杂度运算:

**声明变量以及变量的赋值 时间复杂度为O(1)**

**一个while循环的时间复杂度 O(log2^n)**

**一个for循环的时间复杂度 O(n)**

以此类推while和for的嵌套循环时间复杂度

**for循环包含while循环-------------->执行一次for循环时,while循环就要执行n次**

**相对应的for循环时间复杂度O(n)** **while循环时间复杂度O(log2^n)**

**按照乘法规则:T=n*log2^n=nlog2^n 因此时间复杂度为O(nlog2^n)线性对数阶**

#### 3.1.2 空间复杂度

遍历二维数组形成的矩阵 该矩阵的空间复杂度为O(n^2)

**空间复杂度对于时间复杂度而言较简单 只有O(1) O(n) O(n^2)**

#### 3.1.3 时间复杂度和空间复杂度历年真题

该题考察的是如何运算整型数组中升序排序算法的时间复杂度和空间复杂度:整形数组A中要对数组中的-1,0,1进行排序 使得1~n1的数为-1,n1+1~n1+n2的数为0,n1+n2+1~n3的数为1 理解题意后根据所学知识编写出相应的数组的代码 最后运算出该排序算法的时间复杂度和空间复杂度

该题考察的是如何运算整型数组中升序排序算法的时间复杂度和空间复杂度:一个while循环的时间复杂度为O(n)

该题中的两个while循环并不形成嵌套,因此按加法法则运算时间复杂度为O(n)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

এ旧栎

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

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

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

打赏作者

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

抵扣说明:

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

余额充值