算法的时间复杂度

ops/2024/10/21 6:31:28/


一.实例:

1.用算法表白:“爱你n遍”。

#include<stdio.h>
​
//算法1:逐步递增型爱你
void loveYou(int n) //n为问题规模 
{int i=1; //爱你的程度  --> 设为语句1 while(i<=n) //设为语句2 {i++; //设为语句3 printf("I love you %d \n",i); //设为语句4 } printf("I love you more than %d \n",n); //设为语句5 
} 
​
int main() //程序入口 
{loveYou(3000); //调用函数,表达爱意 return 0;
}

假设上述标记的5条语句执行时间相同(实际上时间不同,但考虑太多外在条件,就难以论述时间复杂度)

语句频度:

语句1-->只执行一次,因为顺序结构

语句2-->执行了3001次,前3000次是符合i<=3000(i初值为1,n为3000,最后一次是i为3000时进行循环后i为3001,最后

进行了一次循环条件的判断,发现不符合,跳出循环)

语句3-->执行了3000次,因为只有进入循环才执行i++,循环了3000次

语句4-->执行了3000次,因为只有进入循环才执行该语句,循环了3000次

语句5-->只执行一次,因为顺序结构

所以,当问题规模n为3000时,就会花费T(3000)=1+3001+3000 * 2+1=3000 * 3+3

-->时间开销与问题规模n的关系:T(n)=3n+3

问题1:是否可以忽略时间复杂度表达式中的某些部分?

例如:T1(n)=3n+3,T2(n)=n * n +3n+1000,T3(n)=n * n * n + n * n + 9999999

问题规模n足够大时,时间复杂度表达式中低阶的部分就可以忽略不计,因为最终差距相对没多大

且最高阶的问题规模n的系数可以化为1,常数可化为1,因为都是一个定值。

算法时间复杂度大小关系:越大代表阶数越高

解答:

问题2:如果有好几千行代码,难道要按这种方法一行一行数去统计代码的时间复杂度?

解答:


二.练习:

例一:

例如当循环一次时,i为2;循环两次时,i为4-->成等比数列

多一次是跳出循环时的判断

例二:


三.总结:



http://www.ppmy.cn/ops/103602.html

相关文章

C++判断语句(基础速通)ac-wing

倍数 #include <iostream> using namespace std; int a, b; int main() {cin >> a >> b;if (a % b 0 || b % a 0) cout << "Sao Multiplos";else cout << "Nao sao Multiplos";return 0; }零食 #include <iostream>…

hive学习(五)

一、hive的DML操作 1.load&#xff08;向表中装载数据&#xff09; hive> load data [local] inpath 路径 [overwrite] into table 表名 [partition (partcol1val1,…)];特殊说明 1&#xff09;local&#xff1a;标识从本地加载数据到Hive表&#xff0c;若没有local的话从…

EmguCV学习笔记 VB.Net 8.2 分水岭法 watershed

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

浅析WebRTC技术在智慧园区视频管理场景中的应用

随着科技的飞速发展&#xff0c;智慧园区作为城市智慧化的重要组成部分&#xff0c;正逐步成为现代化管理的重要方向。智慧园区的建设不仅涉及硬件设施的智能化升级&#xff0c;还离不开高效的视频管理和实时通信技术。在这一背景下&#xff0c;WebRTC&#xff08;Web Real-Tim…

HarmonyOS(52) 使用安全控件SaveButton保存图片

SaveButton使用简介 前言SaveButton简介约束与限制 实现点击事件全部源码 参考资料&#xff1a; 前言 在HarmonyOS(50) 截图保存功能实现一文中简单介绍了截图保存功能&#xff0c;本篇博文介绍一个更简单的保存图片控件SaveButton. SaveButton简介 SaveButton允许用户通过点…

2025舜宇集团校招二维码

舜宇光学集团校招 【2025内推码】 DSwNQ9yu DSJXN8Mr 舜宇光学科技2025校招内推&#xff01;冲冲冲&#xff01; 光学龙头-舜宇集团2025届全球校园招聘正式启动&#xff01;&#xff01;&#xff01; 提供住宿&#xff08;硕士单人间&#xff0c;独立卫浴&#xff01;&#x…

plsql 的一次注释引起的报错

/* 游标的简单使用 */ declare vrow scott.emp%rowtype; cursor vrows is select * from scott.emp; BEGIN /* 打开游标 */ open vrows; /* 循环取数据 */ loop fetch vrows into vrow; exit when vrows%notfound; dbms_output.put_line(姓名&#…

【学术会议征稿】第五届机械工程、智能制造与自动化技术国际学术会议(MEMAT 2024)

第五届机械工程、智能制造与自动化技术国际学术会议&#xff08;MEMAT 2024&#xff09; The 5th International Conference on Mechanical Engineering, Intelligent Manufacturing and Automation Technology 目前&#xff0c;我国自动化技术随着科学技术水平的不断提高已经…