时间复杂度的计算(含例题细致讲解)

时间复杂度的计算(含例题细致讲解)

目录

💯前言

💯时间复杂度的概念

💯单层循环时间复杂度计算公式

【例题】:

【练习】:

💯两层循环时间复杂度计算公式

【例题】:

💯多层循环时间复杂度计算公式

👍方法一:抽象为计算三维物体体积

⭐方法二:列式求和

💯前言

算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。

时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。

💯时间复杂度的概念

在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。

一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。

请计算一下Func1中++count语句总共执行了多少次?

// 请计算一下Func1中++count语句总共执行了多少次?

void Func1(int N)

{

int count = 0;

for (int i = 0; i < N; ++i)

{

for (int j = 0; j < N; ++j)

{

++count;

}

}

for (int k = 0; k < 2 * N; ++k)

{

++count;

}

int M = 10;

while (M--)

{

++count;

}

printf("%d\n", count);

}

实际中我们计算时间复杂度时,我们其实并不一定要计算精确的执行次数,而只需要大概执行次数,那么这里我们使用大O的渐进表示法。

✨ 常见复杂度对比:

💯单层循环时间复杂度计算公式

⭐ 1.列出循环趟数 t ,以及每轮 i 的变化值

2.找到 t 和 i 的关系

3.确定停止条件

4.联立方程

【例题】:

//计算下面代码的时间复杂度

int i = 1;

while(i<=n)

i = i*2;

【解】:

👍列出循环趟数 t 及每轮 i 的变化值

t 012345 i 12481632

👍找到 i 与 t 的关系:

❶ i=2^t

👍确定停止条件

❷ i<=n

👍联立❶,❷方程

得出 2^t<=n

即 t<=

以上就是单层循环时间复杂度的计算方法

【练习】:

//计算下面代码的时间复杂度

//练习1

int i=0;

while(i*i*i<=n)

i++;

【答案】:

//计算下面代码的时间复杂度

//练习2

y=0;

while((y+1)*(y+1)<=n)

y=y+1;

【答案】:

💯两层循环时间复杂度计算公式

⭐ 1.列出外层循环趟数 t1

2.列出外层循环中 i 的变化值

3.列出内层语句的执行次数 t2

4.求内层语句的执行次数 t2 之和 S

【例题】:

//计算下面代码的时间复杂度

int count=0;

for(k=1 ; k<=n ; k*=2)

for(j=1;j<=n;j++)

count++;

【解】:

👍列出外层循环趟数 t1 ,列出外层循环中 k 的变化值

t1 012345 k 12481632

👍找到 k 与 t1 的关系

k=2^t1

由外层循环可得 2 ^ t1<= n ,即 t1 =

⭐说明外层循环有次

👍列出内层语句的执行次数 t2

t1 012345 k 12481632 t2 123456

👍求内层语句的执行次数 t2 之和 S

所以时间复杂度为

以上就是双层循环时间复杂度的计算方法

💯多层循环时间复杂度计算公式

【例题】:

//计算下面代码的时间复杂度

for(i=0;i<=n;i++)

for(j=0;j<=i;j++)

for(k=0;k

s++;

⭐方法一:抽象为计算三维物体体积

⭐方法二:列式求和

👍方法一:抽象为计算三维物体体积

计算该体积即为时间复杂度:O(n^3)

👍方法二:列式求和

题解如下:

以上就是多层循环时间复杂度的计算方法

感谢你看到最后,点个赞再走吧!

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

相关推荐

稻壳精选图表技巧
365bet官网网址

稻壳精选图表技巧

📅 08-01 👁️ 5345
UGC内容风险大?站长必备的7个用户生成内容审核技巧
gta5怎么开瞄准镜
比分365网页版

gta5怎么开瞄准镜

📅 10-24 👁️ 4245