算法时间复杂度和空间复杂度

本文介绍了算法的基本概念和特征,重点探讨了衡量算法效率的重要指标——时间复杂度和空间复杂度。时间复杂度包括时间频度、最好、最坏和平均情况下的复杂度,通常关注最坏情况。计算时间复杂度采用了一些分析法则,如常数替换、最高阶项保留等。常见的时间复杂度从低到高包括O(logn), O(n), O(nlogn), O(n^2), O(n^3)等。空间复杂度则关注算法执行所需的存储空间,包括函数调用、动态开辟和递归栈的空间需求。" 115369854,7918960,C++模拟线程池与原子打印,"['C++编程', '多线程编程', '并发控制', '同步机制', '线程池实现']
摘要由CSDN通过智能技术生成

一,算法
算法:解决特定问题求解步骤的描述。在计算机中表现为指令的有限序 列,每条指令可表示一条个或多个操作。
二,算法具有五个特性

  1. 输入:算法具有零个或多个输入。
  2. 输出:只有一个或多个输出。
  3. 有穷性:算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且一个步骤在可接受的时间内完成。就是不会出现死循环。。。
  4. 确定性:每一个步骤都有确定含义,不会出现二义性
  5. 可行性:每一步都能够通过执行有限次数完成 。

总结一下就三点:正确;能完结;无二义性。

三,度量一个算法的好与坏——–时间复杂度和空间复杂度
算法的时间复杂度和空间复杂度统称为算法的复杂度。

  1. 时间复杂度:
    (1)时间频度:一个算法中语句执行次数,记为T(n)。
    时间复杂度实际上就是一个函数,该函数计算的是执行基本操作的次数。一个算法语句的执行次数是关于问题规模n的某个函数,我们把它记为f(n),n就是问题的规模。当问题规模N变化时,T(n)也在变化,算法执行次数的增长速率和f(n)的增长速率相同,即T(n)=f(n)。当n趋于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则成f(n)是T(n)的同数量级函数,记作T(n)=O(f(n)),称O(f(n))为时间复杂度的O渐进表示法,也就是时间复杂度。
    (2)最好,最坏和平均算法复杂度:
    最好情况下:任意输入规模下的最大运行次数(上界)。 <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值