哟巴哥 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 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件