复杂度分析( 一)

本文介绍了复杂度分析的概念,包括时间复杂度和空间复杂度。通过实例解析如何分析时间复杂度,强调只关注执行次数最多的代码段,并解释了嵌套代码的复杂度计算。同时,列举了常见的时间复杂度级别,如O(1)、O(logn)、O(n^2)等,并指出它们与算法执行效率的关系。最后,提到了空间复杂度的分析,以一个占用n空间的例子说明。总结中强调复杂度分析在评估算法效率中的重要作用。

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

1.什么是复杂度
    复杂度也叫渐进复杂度,包括时间复杂度和空间复杂度。

2.时间复杂度

   也叫渐进时间复杂度。表示代码执行时间与数据规模增长的时间变化趋势。一句话就是代码的执行次数。

3.空间复杂度

   也叫渐进空间复杂度。表示算法的存储空间与数据规模之间的增长关系。代码执行时候所需的空间。

4.如何分析时间复杂度

   4.1 只关注执行次数最多的一段代码   

 int cal(int n) {
   int sum = 0;
   int i = 1;
   for (; i <= n; ++i) {
     sum = sum + i;
   }
   return sum;
 }

  设单位时间为unit_time。 2,3行执行了常量次,4,5行都执行了n次,加起来是(2n+2)*unit_time,忽略掉系数和常量。所以时间复杂度为O(n)

   4.2 时间复杂度等于量级最大的那段代码的时间复杂度

int cal(int n) {
   int sum_1 = 0;
   int p = 1;
   for (; p < 100; ++p) {
     sum_1 = sum_1 + p;
   }

   int sum_2 = 0;
   int q = 1;
   for (; q < n; ++q) {
     sum_2 = sum_2 + q;
   }
 
   int sum_3 = 0;
   int i = 1;
   int j = 1;
   for (; i <= n; ++i) {
     j = 1; 
     for (; j <= n; ++j) {
       sum_3 = sum_3 +  i * j;
     }
   }
 
   return 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值