哟巴哥 2022-08-25 14:47 采纳率: 100%
浏览 19
已结题

怎么算法的时间复杂度

怎么确定算法的时间复杂度

int minSubArrayLen(int s, int* nums, int numsSize){

    int left = 0;

    int right = 0;

    int min = 0;    

    int sum = 0;   

    while (right < numsSize){

        sum += nums[right];

        right++;

        while (sum >= s){

            if (min == 0){

                min = right - left;

            }

            else{

                if(min > right - left)

                min = right - left;       

            }

            sum -= nums[left];

            left++;

        }

    }

    return min;

}




  • 写回答

1条回答 默认 最新

  • 软泡芙 C#领域优质创作者 2022-08-25 14:52
    关注

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

    • 时间复杂度为 O (1),代码只被执行一次。
    • 时间复杂度为 O (n),比如常见的遍历算法。 也就是一个for循环的时间复杂度。
    • O(n^2)就是嵌套for循环,就是两个for循环,是不是相当于运行了n*n次。比如冒泡和选择排序。
    • 再比如 O (logn),( log 是以 2 为底)。二分搜索就是 O (logn) 的算法,每找一次排除一半的可能。
    • O (nlogn) 同理,就是 n 乘以 logn,归并排序就是 典型的例子。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月25日
  • 已采纳回答 8月25日
  • 创建了问题 8月25日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)