详解时间复杂度计算公式(附例题细致讲解过程) |
您所在的位置:网站首页 › 计算卷积的例题讲解 › 详解时间复杂度计算公式(附例题细致讲解过程) |
这几天开始刷力扣上面的算法题,有些题目上面限制时间复杂度和空间复杂度,题目虽然写出来了,但是很没底。印象里数据结构老师讲过一点,沉睡的记忆苏醒了。只记得一个时间复杂度是O(n),空间复杂度是S(n)。for循环常常是O(n),具体是怎么算的不清楚。所以在看了相关的视频教学后,总结一下时间复杂度的计算公式,希望能给大家的学习带来帮助! 目录 一、什么是时间复杂度 二、单层循环时间复杂度计算公式 三、两层循环时间复杂度计算公式 四、多层循环时间复杂度计算公式 方法一:抽象为计算三维物体体积 方法二:列式求和 一、什么是时间复杂度时间复杂度(Time complexity)是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数. 时间复杂度常用大O表述,不包括这个函数的低阶项和首项系数。 时间复杂度大小比较: 时间复杂度分类: 算法完成工作最少需要多少基本操作叫做最优时间复杂度,是一种最乐观最理想的状态。算法完成工作最多需要多少基本操作叫做最坏时间复杂度,是算法的一个保障。算法完成工作平均需要多少基本操作叫做平均时间复杂度,它可以均匀全面的评价一个算法的好坏。时间复杂度基本计算规则: 基本操作即只有常数项,认为其时间复杂度为O(1)顺序结构,时间复杂度按加法进行计算循环结构,时间复杂度按乘法进行计算分支结构,时间复杂度取最大值判断一个算法效率时,往往只需要关注操作数量的最高次项,其他次要项和常数项可以忽略在没有特殊说明时,我们所分析的时间复杂度都是指最坏时间复杂度 二、单层循环时间复杂度计算公式解题步骤 列出循环趟数t及每轮循环i的变化值找到t与i的关系确定循环停止条件联立两式解方程写结果例题分析 例一: i = n*n; whlie(i != 1) i = i/2;第一步:列出循环趟数t及每轮循环i的变化值: t0123i第二步:找到t与i的关系: 第三步:确定循环停止条件: 第四步:联立第二步第三步两式解方程: 所以得到时间复杂度为: 例二: x = 0; while (n>=(x+1)*(x+1)) x = x+1;第一步:列出循环趟数t及每轮循环x的变化值: t01234x01234第二步:找到t与x的关系: 第三步:确定循环停止条件: 第四步:联立第二步第三步两式解方程: 所以得到时间复杂度为: 例三: int i = 1; while (i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |