【算法的时间复杂度和空间复杂度】时间复杂度和空间复杂度介绍以及常见的大小比较

本文介绍了算法的时间复杂度和空间复杂度的概念,用于衡量算法运行时间和所需存储空间。常见的时间复杂度包括O(1), O(logn), O(n), O(nlogn), O(n^2),空间复杂度则有O(1), O(n), O(n^2)等。通过分析代码执行次数,可以推导出相应的时间复杂度,如线性、对数和多项式。空间复杂度则关注算法运行时的临时存储需求,递归算法的空间复杂度与递归深度相关。" 104740161,9356127,计算斐波那契数列的C语言实现,"['C语言', '算法', '数组']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际开发中,通常会选择以空间换时间。

  1. 时间复杂度:是对一个算法运行时间长短的量度,用大O表示,记作T(n)=O(f(n))。
    常见的时间复杂度按照从低到高的顺序,包括O(1)、O(logn)、O(n)、O(nlogn)、O(n^2)

    • 由于受运行环境和输入规模的影响,代码的绝对执行时间是无法预估的。但我们却可以预估代码的基本操作执行次数。
    • 设T(n)为程序基本操作执行次数的函数(也可以认为是程序的相对执行时间函数),n为输入规模,以下场景为程序中最常见的4种执行方式:
      • 场景1: T(n)=3n, 执行次数是线性的。
        void eat1(int n){
                 
        	for(int i=0; i<n; i++){
                 
        		System.out.println("等待1分钟");
        		System.out.println("等待1分钟");
        		System.out.println("吃1cm面包");
        }}
        
      • 场景2: T(n)=5logn,执行次数是用对数计算的。
        void eat2(int n)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值