算法效率的总结

本文详细介绍了算法的时间复杂度和空间复杂度。从定义、推导大O阶的方法出发,分别讨论了常数阶、线性阶、对数阶、平方阶的时间复杂度,并通过实例分析了冒泡排序的时间复杂度。同时,概述了空间复杂度的定义,指出常见情况下的空间复杂度情况,并以冒泡排序为例说明其空间复杂度为O(1)。
摘要由CSDN通过智能技术生成

目录


一.时间复杂度

1.定义

2.推导大O阶的方法

3.常数阶

4.线性阶

5.对数阶

6.平方阶

7.举例

二.空间复杂度

1.定义

2.举例


一.时间复杂度

1.定义

在进行算法分析时语句的总执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法时间复杂度,也就是算法的时间量度,记作:T(n)=O(t(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数。

用大写O()来体现算法时间复杂度,成为大O记法。随n(问题规模)的增大,T(n)的增长最慢的成为最优算法。

2.推导大O阶的方法

(1)用常数1取代运行时间中的所有加法常数。

(2)在修改的运行次数函数中,只保留最高阶项。

(3)如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。

3.常数阶

举例:

//顺序结构

#include<stdio.h>

int main(){                                                  

char c=97;

printf("c=%d\n",c);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值